Windows XP中应使用何种颜色作为窗口背景?COLOR_WINDOW跨版本差异
Windows XP窗口背景颜色适配问题
在Windows 10中,窗口颜色与GUI元素的背景颜色一致。但在Windows XP中,窗口颜色为白色,与元素背景颜色不一致。
当前WNDCLASSEX配置如下:
WNDCLASSEX wincl; //... wincl.hbrBackground = (HBRUSH)COLOR_WINDOW; // 设置背景颜色 //... if (!RegisterClassEx (&wincl)) return 1;
Windows 10中的窗口效果:
Windows XP中的窗口效果:
在Windows XP中,你需要使用COLOR_3DFACE来设置窗口背景,这样就能让窗口背景和标准GUI元素(比如按钮、编辑框这类控件)的背景颜色保持一致。
修改后的代码如下:
WNDCLASSEX wincl; //... wincl.hbrBackground = (HBRUSH)COLOR_3DFACE; // 适配Windows XP的背景颜色 //... if (!RegisterClassEx (&wincl)) return 1;
原因是:在Windows XP的视觉样式中,COLOR_WINDOW对应的是纯白色,而标准控件的背景色是COLOR_3DFACE对应的浅灰色;到了Windows 10之后,系统统一了这些颜色的取值,所以COLOR_WINDOW和COLOR_3DFACE表现一致。
内容的提问来源于stack exchange,提问作者iEPCBM
相关产品推荐
相关产品推荐

