改变窗口背景颜色

时间:2010-10-23 11:00:31

标签: c++ winapi

在winAPI中,如何更改窗口背景颜色?

例如,

wc.hbrBackground = ....;

用于初始设置窗口背景,但如何在之后更改窗口背景?

感谢。

2 个答案:

答案 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的额外工作,并明确地绘制背景。这样您就可以完全控制背景颜色,并且可以在不同的窗口实例中使用不同的颜色。