| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1873 人关注过本帖
标题:急问:怎样改变控件在禁用状态下的字体颜色
只看楼主 加入收藏
cityhunter
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-5-17
收藏
 问题点数:0 回复次数:3 
急问:怎样改变控件在禁用状态下的字体颜色
所有控件在EnableWindow(false)之后,默认的字体颜色是灰色!怎么改变此时的颜色? 比较着急,恳请高手指教
搜索更多相关主题的帖子: 字体颜色 控件 状态 false EnableWindow 
2005-05-17 21:09
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 

映射对话框的WM_CTLCOLOR消息: HBRUSH 对话框类::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TOD 在此更改 DC 的任何属性 if (nCtlColor == CTLCOLOR_EDIT) { pDC->SetTextColor(RGB(255,0,0)); } // TOD 如果默认的不是所需画笔,则返回另一个画笔 return hbr; }

[此贴子已经被作者于2005-5-18 9:24:45编辑过]


I am a big fan of c plus plus.
2005-05-18 08:54
cityhunter
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-5-17
收藏
得分:0 
您所说的这种方法在控件处于正常状态是有效的,但是当控件处于不能用即EnableWindow(false)之后,父窗口就会认为其不是有效控件,不再映射其WM_CTLCOLOR消息,所以不起作用,字体此时的颜色还是默认的灰色。 麻烦您再帮我想想其他办法,我真得快没辙了
2005-05-18 11:57
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 
那就这样:
(1)把编辑框的背景色设置为禁用时候的颜色
(2)把编辑框的EN_UPDATE消息映射了,在其它的地方设置一个BOOL值的变量,当这个变量为真的时候,就不能输入新的字符.

这样一来,字体的颜色也能改变了,也模拟出禁用的样子了.

I am a big fan of c plus plus.
2005-05-19 08:41
快速回复:急问:怎样改变控件在禁用状态下的字体颜色
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011051 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved