您的位置:首页 > 其它

VC2005 MFC静态文本框背景色设置

2017-03-10 10:20 260 查看
最近在需要用MFC做一个上位机,第一次接触这个东西我想把我在这过程中遇到的问题写下来,希望也能帮助遇到同样问题的朋友。有什么地方不对的请各位指正。

我在利用MFC做登录界面时出现了一个问题。我发现如果直接有工具箱拖放一个静态文本到程序窗口时文本框的背景颜色是灰色,字体为黑色,且在属性窗口没有修改文本颜色的选项。效果图如下。



图1 红色矩形框中默认文本框颜色
这样显示就和背景颜色很不协调。我希望文本框以黑底白字显示。由于我是第一次使用MFC做上位机,对许多东西都不明白,在网上查的资料很多是基于VC6.0开发的,关键还只有代码。经过我的一番摸索我终于解决了这个问题,下面是我解决的具体步骤,希望能帮到和我一样的小白。
1、首先在VC2005平台上不能通过直接右击窗口类来添加系统消息处理函数。在VC2005中我们需要在文本框所在窗口类上右键选择属性,之后点击闪电右边的事件图标,如下图。



图2 选择红色箭头所指的图标
2、在事件中找到WM_CTLCOLOR事件,之后在右边单元格下拉添加。
3、在类所属cpp文件中找到下列函数。
HBRUSH CDengLuDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{.......}
4、在上面函数中添加下列代码。其中IDC_STATIC_1换为你静态文本框所对应的文本ID即可。
if( IDC_STATIC_1  ==  pWnd->GetDlgCtrlID())//判断发出消息的空间是否是该静态文本框
{
pDC->SetTextColor(RGB(255,255,255));//设置文本颜色为白色
pDC->SetBkMode(OPAQUE);//设置文本背景模式为透明
pDC->SetBkColor(RGB(0,0,0));//设置文本背景为黑色
hbr=CreateSolidBrush(RGB(0,0,0));//控件的背景色为黑色
}
5、最后运行时效果如下。



图  3 最终运行效果文本框黑底白字显示
最后感谢附上帮助过我的帖子:
http://www.cnblogs.com/qingergege/p/5147988.html
编程中如有问题可以查阅微软MSDN帮助工具。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息