工控编程吧
标题:
57上位机VC MFC编辑框文本颜色任意设置
[打印本页]
作者:
qq263946146
时间:
2015-12-5 23:01
标题:
57上位机VC MFC编辑框文本颜色任意设置
(, 下载次数: 0)
上传
点击文件名下载附件
57上位机VC MFC编辑框文本颜色任意设置
功能展示
在实际的应用程序当中,多种场合下都有改变编辑框内文字颜色的功能,如果密码输入错误可以设置文字为红色提醒用户,输入正确则还原默认颜色,如何实现编辑框内字体颜色任意修改?我们当前例程就实现这一功能,效果如图
要点提示
改变编辑框文本的颜色,可以通过Cedit的设备上下文类CDC中SetTextColor()函数来实现,在对话框中要使用这个函数生效,我们得在对话框的OnCtlColor()中对Cedit类的CDC函数SetTextColor()进行调用;在对话框中,控件被显示之前,我们的操作系统都会发送WM_CTLCOLOR消息到对话框程序中,也就是会调用OnCtlColor()函数;这个函数会修改对话框及其所包含的控件的颜色; afx_msg HBRUSH OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor ); pDC为指向绘图设备的指针; pWnd为指向具体的控件的指针; nCtlColor 为控件的类型,具体类型有CTLCOLOR_BTN Buttoncontrol
CTLCOLOR_DLG Dialog box ;CTLCOLOR_EDIT Edit control; CTLCOLOR_LISTBOX List-boxcontrol;
CTLCOLOR_MSGBOX Message box; CTLCOLOR_SCROLLBAR Scroll-bar control;CTLCOLOR_STATIC Static control ;
实现功能
1.新建基于对话框的应用程序
2.拖拽一个编辑框控件用于显示文本;添加一个颜色用变量COLORREF m_Color;用于设置文本的颜色;添加几个radio button控件用于设置编辑框不同的文本颜色,给这几个按钮关联函数如我们例程void CGkbc8Dlg::OnGray()
{m_Color = RGB(119,136,153);GetDlgItem(IDC_EDIT1)->Invalidate();} ;
3.最后实现OnCtlColor()函数
<div>HBRUSH CGkbc8Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) </div><div>{</div><div>HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);</div><div>if(nCtlColor == CTLCOLOR_EDIT)</div><div>pDC->SetTextColor(m_Color);</div><div>return hbr;</div><div>}</div>
复制代码
当然你还得往编辑框添加些文字,才能进行编辑框字体颜色任意设置功能效果的观察
我们来演示功能的实现过程
[iqiyi]http://player.video.qiyi.com/70373a3f41959b8beaa57b2e1c5418bb/0/0/w_19rt6im251.swf-albumId=4975364409-tvId=4975364409-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4