VS2010解决对话框设置背景图片和文字重叠问题
内容:MFC基于对话框的项目设置背景图片以及解决设置对话框背景之后导致文字重叠(叠影)问题。
简介:
被严密封装的MFC应用程序界面开发是一个很大的问题。先从简单的对话框背景设置来说。
可以设置BITMAP图像或者其他格式的图片做为背景。
MFC内置了CImage类来加载和使用各种类型的图片。
简单使用方式如下:在Rect大小的区域用Image来绘制背景。(也可以使用bkImage.BitBlt();bkImage.StretchBlt()等函数来绘制Rect区域)。
产生原因:
每个控件默认带一个自己的背景色。
解决方法:
将其默认的背景色设置为透明即可。
在WM_CTLCOLOR消息对应的消息处理函数OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)中
产生原因:
咱无
解决方法:
对包含该文字的控件在更新文字之前,
先调用ShowWindow(SW_HIDE);
然后等更新文字到控件之后。
再调用ShowWindow(SW_SHOW);
即可解决。
由于我是通过变量关联的控件所以
直接使用
//也可以直接使用((CEdit *)(GetDlgItem(IDC_EDIT)))->ShowWindow(SW_HIDE);((CEdit *)(GetDlgItem(IDC_EDIT)))->SetWindowText(str);((CEdit *)(GetDlgItem(IDC_EDIT)))->ShowWindow(SW_SHOW);
如上重影现象消失
出现字体重影的原因希望各位指点。