2012-01-20 153 views

回答

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

有一個Windows的默認背景顏色,使用GetSysColor(COLOR_WINDOW)。但最終一扇窗戶決定了什麼是「背景」,什麼是「前景」。受WNDCLASS.hbrBackground和窗口的WM_ERASEBKGND和WM_PAINT消息處理程序影響。一切皆有可能。

+0

用於'hbrBackground'的+1。它不一定設置,但在這種情況下,你不得不懷疑背景顏色是否存在。 (例如透明窗口等) – MSalters

+0

如果默認的OnCtlColor行爲被覆蓋,它也會受到WM_CTL_COLOR消息的影響。 – sergiol