我在visual studio 2010 vc ++中完成了一个项目 我在运行时使用WNDCLASS创建了多个窗口。我想创建一个适用于创建时所有窗口的颜色主题。
答案 0 :(得分:0)
由于应用了另一个主题,在运行时更改所有窗口的背景颜色需要您的一些实施工作。据我所知,没有任何机制可以为你做到这一点。
假设您编写了一个Windows应用程序,并希望在运行时获得主题支持:
我不会做什么: 您可以创建自己的窗口类(WNDCLASS)并设置您喜欢的背景颜色(HBRUSH hbrBackground),并从此窗口类创建所有窗口。这有一些严重的缺点,因为你需要为每个类窗口(Buttuns,Sliders,Popup窗口......)创建一个窗口类,你不能在运行时更改它而不重新创建所有窗口。
我会做什么: 我将为我的应用程序创建的所有窗口引入一个公共基类。该基类包含背景颜色(以及其他常见的有用的东西)。当应用另一种背景颜色时,您只需要告诉所有窗口有关该更改(通过setBackgroundColor()),以便他们可以重新绘制内容。
我希望有所帮助。