2012-01-20 209 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