获取窗口的背景颜色

8
有没有一种函数(C ++,MFC)可以获取窗口的背景颜色?

你是指任何窗口的背景颜色还是Windows桌面的背景颜色? - dwo
2个回答

8

Windows有一个默认的背景颜色,可以使用GetSysColor(COLOR_WINDOW)来获取。但最终窗口决定什么是“背景”和什么是“前景”。这受到WNDCLASS.hbrBackground以及窗口的WM_ERASEBKGND和WM_PAINT消息处理程序的影响。任何事情都有可能发生。


+1 对于 hbrBackground。它不一定被设置,但在这种情况下,您必须想知道是否存在背景颜色。(例如透明窗口等) - MSalters
如果覆盖了默认的OnCtlColor行为,它也可能会受到WM_CTL_COLOR消息的影响。 - sergiol

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接