MFC:更改CEdit的颜色
伙计们,有人可以给我简要介绍一下如何在运行时更改 CEdit 控件的背景颜色吗? 如果字段长度为零,我希望能够将背景更改为红色,否则为正常白色。
Guys, can someone give me a brief run through of how to change the background colour of a CEdit control at runtime? I want to be able to change the background to red if the field is zero length and the normal white otherwise.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您无法使用普通的 CEdit 来完成此操作,您需要覆盖一些位。
实现您自己的 ON_WM_CTLCOLOR_REFLECT 处理程序,然后在处理程序中返回您的彩色 CBrush:(
大致上,您需要将常用的资源管理放在那里,请记住在析构函数中删除您的画笔)
You cannot do it with a plain CEdit, you need to override a few bits.
Implement your own ON_WM_CTLCOLOR_REFLECT handler, then return your coloured CBrush in the handler:
(roughly, you'll need to put the usual resource management in there, rememebr to delete your brush in the destructor)
这也可以在不从 CEdit 派生的情况下完成:
ON_WM_CTLCOLOR()
添加到对话框的BEGIN_MESSAGE_MAP()
代码块。将
OnCltColor()
添加到您的对话框类:像这样实现
OnCtlColor()
:This can also be done without deriving from CEdit:
ON_WM_CTLCOLOR()
to your dialog'sBEGIN_MESSAGE_MAP()
code block.Add
OnCltColor()
to your dialog class:Implement
OnCtlColor()
like so: