2012-01-20 11 views
7

Có chức năng nào (C++, MFC) để lấy màu nền của cửa sổ không?Nhận màu nền của cửa sổ

+0

Bạn có phải là màu nền của bất kỳ cửa sổ hoặc màn hình nền nào không? – dwo

Trả lời

5
CDC* pDc= GetDC(); 
COLORREF crBkgnd = pDc->GetBkColor(); 
6

Có màu nền mặc định cho cửa sổ, sử dụng GetSysColor (COLOR_WINDOW). Nhưng cuối cùng một cửa sổ tự quyết định 'nền' là gì và 'tiền cảnh' là gì. Bị ảnh hưởng bởi WNDCLASS.hbrBackground và trình xử lý tin nhắn WM_ERASEBKGND và WM_PAINT của cửa sổ. Mọi thứ đều có thể.

+0

+1 cho 'hbrBackground'. Nó không nhất thiết phải thiết lập, nhưng trong trường hợp đó bạn phải tự hỏi nếu một màu nền thậm chí còn tồn tại. (Ví dụ: cửa sổ trong suốt và các loại tương tự) – MSalters

+0

Nó cũng có thể bị ảnh hưởng bởi thông báo WM_CTL_COLOR nếu hành vi OnCtlColor mặc định bị tràn ngập. – sergiol