繁体   English   中英

使用WinXp通用控件时编辑控件背景色的奇怪行为

[英]Strange behaviour of edit control background color when using WinXp common controls

我遇到一个奇怪的问题(嗯,至少我觉得很奇怪=))。 我正在编写自己的GUI库,它是Windows api的包装(是的,我知道WTL和类似MFC =的框架)。 在当前阶段,我已经以这种方式封装了通用控件:例如,Edit类由一个简单的窗口和一个位于其上方的标准编辑窗口(MainWindow-> GhostWindow-> EditBox)组成。 例如,这就是我可以如何在编辑类本身内部更改编辑的背景颜色的方法:

myedit->SetBkColor ( RGB ( 0, 0, 0 ) );

它运行良好,直到我调用InitCommonControlsEx并将清单文件附加到程序中。 完成此操作后,我的编辑仅在具有焦点时才能够更改颜色。 老实说,我对为什么这样的行为以及我做错了事没有全面的想法,所以我将不胜感激。

谢谢#535

  1. 当您附加版本6清单时,不需要调用InitcommonControlsEx。

  2. 无论如何。 加载了版本6的通用控件后,XP主题设置甚至用于标准的Windows控件。 控件的背景色是使用xp主题色绘制的,因此,使用WM_CTLCOLOR *消息较少。

  3. 您当前正在使用WM_CTLCOLOR *消息覆盖各种控制元素的散热器吗?

好吧,一切都比我想的容易得多。 我太不专心=(当不使用样式时,一根手杖使用:: SetBkColor(...)更改背景颜色,然后从WM_CTLCOLOR *返回画笔以更改边框颜色。启用样式后,情况将有所不同现在:: SetBkColor(...)对应于焦点颜色,返回的画笔更改背景颜色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM