这里以CStatic为例,其他的控件字体颜色的设置方法类似,如果需更多个性化设置,建议自绘控件,相关内容请在清泛网自行搜索。
由于CStatic没有现成的接口,要么自己继承CStatic然后重写WM_CTLCOLOR的响应函数。要么在父窗口重写WM_CTLCOLOR的响应函数,然后调用相应的接口来改变文字颜色,原理如下:
“在绘制控件前,Windows向该控件的父窗口发送一条WM_CTLCOLOR消息,目的是获得该控件的颜色”,在该响应函数中修改颜色的参数。
1、所有的CStatic控件设置颜色:
2、你可能觉得对所有的控件使用统一的界面设置觉得不自由,其实VC同样可以对特定的ID的控件进行设置,方法如下:第三个参数OnCtlColor主要有以下的值:
CTLCOLOR_BTN 按钮控件
CTLCOLOR_DLG 对话框
CTLCOLOR_EDIT 编辑框
CTLCOLOR_LISTBOX 列表框
CTLCOLOR_MSGBOX 消息框
CTLCOLOR_SCROLLBAR 滚动条
CTLCOLOR_STATIC 静态文本
3、点某个按钮后,动态改变背景色
设置一个颜色变量,按钮事件中改变其颜色值,然后在OnCtlColor中进行设置: