MFC 在某些特定条件下改变控件内文本的颜色的方法
2017-06-23 17:56
253 查看
1.在主窗口创建WM_CTLCOLOR消息
将自动生成如下响应函数HBRUSH CCST_DLXZ::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); //// TODO: 在此更改 DC 的任何特性 return hbr; }
在TODO:下加入如下代码,ID改成你需要控制的控件ID
if (pWnd->GetDlgCtrlID() == IDC_EDIT_OFFSET1)//如果是编辑框 { pDC->SetTextColor(m_colorEditText); }
其中
m_colorEditText事先在头文件中声明如下,颜色为我们的初始颜色,如黑色
COLORREF m_colorEditText=RGB(0,0,0); // edit控件的字体初始颜色
2.在需要控制的地方添加条件
比如if(i>5) { m_colorEditText = RGB(255,0,0);//改为红色 m_edit.UpdateWindow(); }
其中m_edit为控件变量
3.原理
利用每次窗口绘制时的OnCtlColor()函数调整文字颜色并刷新,改变背景颜色同理。相关文章推荐
- MFC中改变静态文本控件字体字号和颜色的方法
- MFC窗体上的STATIC控件鼠标移上去改变文本和背景颜色,鼠标离开恢复正常
- MFC编程学习之改变对话框和控件及文本颜色
- MFC中一种改变静态文本颜色的方法
- MFC 如何改变某个子控件的文本颜色
- MFC中改变控件的背景颜色
- MFC EDIT控件中改变背景色和文字颜色
- 让CStatic控件根据自己的需要改变,文本,文本颜色,填充背景色
- MFC Dialog改变大小后,控件随之改变方法
- 改变按钮控件的背景及文本颜色
- 在DataGrid(WinForm)中改变符合指定条件的行颜色的方法
- MFC学习之 对话框设置背景颜色及控件透明的方法
- 在DataGrid(WinForm)中改变符合指定条件的行颜色的方法
- DXUT 改变控件颜色和文本
- 改变MFC对话框背景色、控件内的字体颜色和背景色
- 自己对“改变CButton按钮控件的文本和背景颜色”的理解
- asp.net GridView控件鼠标移动某行改变背景颜色(方法一)
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- 模板方法模式(Template Method)-定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
- MFC OnCtlColor函数用来改变控件颜色