在winAPI中,如何更改窗口背景颜色?
例如,
wc.hbrBackground = ....;
用于初始设置窗口背景,但如何在之后更改窗口背景?
感谢。
答案 0 :(得分:6)
将SetClassLongPtr函数与GCLP_HBRBACKGROUND参数一起使用:
SetClassLongPtr(windowHandle, GCLP_HBRBACKGROUND, brushHandle);
http://msdn.microsoft.com/en-us/library/ms633589%28VS.85%29.aspx
答案 1 :(得分:3)
警惕使用PigBen描述的技术。它将更改该窗口类的所有实例的背景颜色,除非它们实现覆盖窗口默认背景的WM_PAINT / WM_ERASBKGND。
我会为你的窗口实现WM_ERASEBKGND的额外工作,并明确地绘制背景。这样您就可以完全控制背景颜色,并且可以在不同的窗口实例中使用不同的颜色。