MFC解决Static控件背景透明时文本覆盖重影
通过映射OnCtlColor消息,而后在该函数中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明时会出现:文本覆盖重影的问题,当改变控件的文本就会发生新文本与旧文本重叠的现象。
可以通过以下方式使Static控件文本在透明状态下改变时不会产生文本重叠问题:
1、由于Static控件的背景已经是透明的了,那么旧文本应该是画在Static控件的父窗口上的。
2、在给Static控件设置新文本之后(不是之前!)刷新父窗口即可。例如:
GetDlgItem(IDC_STATIC_TEST)->SetWindowText(_T("北京2008"));?0?2
GetDlgItem(IDC_STATIC_TEST)->GetParent()->RedrawWindow();
IDC_STATIC_TEST为控件ID号。
3、用上面方法刷新的是整个父窗口客户区,界面会闪烁,可以只刷Static控件所在的RECT区域,就不会闪烁了。
CRect rtlbl;
GetDlgItem(nID)->GetWindowRect(&rtlbl);
ScreenToClient(&rtlbl); //转到客户端界面
InvalidateRect(&rtlbl);//最后刷新对话框背景
UpdateWindow();
MFC解决Static控件背景透明时文本覆盖重影的更多相关文章
- MFC 添加背景图片并让控件背景透明
/*添加背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialog::OnEraseBkg ...
- MFC 加入背景图片并让控件背景透明
/*加入背景图片*/ BOOL CTOOLDlg::OnEraseBkgnd(CDC* pDC) { // TODO: 在此加入消息处理程序代码和/或调用默认值 CDialog::OnEraseB ...
- C#控件背景透明的几种解决方案
已经很少做winform程序了,最新参与了一个小项目,遇到了控件背景透明的功能要求,特在此总结一下,供有需要的同行参考. 0.背景透明的概念和分类 背景透明是啥意思呢,就是背景透明.哈哈,废话了.其实 ...
- 修改static控件背景颜色和文字颜色
当 static 控件或具有 ES_READONLY 风格的 edit 控件被绘制时,会向父窗口发送 WM_CTLCOLORSTATIC 消息.如果我们在窗口过程中处理该消息,就必须返回一个画刷句柄, ...
- VC++ CStatic控件背景透明且改变其文本时,文字重叠解决方法
最近在项目中将CStatic控件设置为背景透明且在一个定时器函数改变其文本,结果CStatic的文字重叠了.解决该问题的方案是:从CStatic类派生自己的静态文本控件. 其实设置背景透明,也就是在C ...
- winform控件背景透明问题(label..等)
在使用winform写界面的时候,要想label这种控件实现对背景色透明,并且也懒得每次拖动一次控件都要在后台写一遍label1.Parent=PictureBox1 那么下面方法就介绍了比较简单便捷 ...
- MFC的Static控件文字重叠问题
写个普通的MFC桌面程序,为了美化界面用了界面库,然后界面上的静态文本就出现了重叠的效果,就像下面这样: 但是窗口被刷新一下就好了,比如被遮挡后恢复的时候.在程序中可以手动加入以下代码: void C ...
- delphi中的Label控件背景透明
Label1.Transparent:=true;你在它的属性窗口把它的Transparent属性改成TRUE就行了 来自为知笔记(Wiz)
- delphi 控件背景透明代码
procedure DrawParentBackground(Control: TControl; DC: HDC; R: PRect = nil; bDrawErasebkgnd: Boolean ...
随机推荐
- 关于wireshark的两个抓包过滤显示的基本语法
关于wireshark的两个基本语法 关于wireshark的两个基本语法 1. Capture Filters 语法:<Protocol name><Direction>&l ...
- Android 通知栏系列....
转:http://blog.csdn.net/vipzjyno1/article/details/25248021 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activ ...
- Cmd批处理语法实例
@echo on :循环获取指定目录下以php为后缀的文件,且重命名后缀为html :for /r "E:\aaa\web" %%v in (*.php) do ren " ...
- C++设计模式之命令模式
厨师类: #include "Cooker.h" Cooker::Cooker(void) { } Cooker::~Cooker(void) { } void Cooker::M ...
- Python标准库_ sys,random,time
一.sys 1. sys这个模块让你能够访问与Python解释器联系紧密的变量和函数 2. sys模块中一些重要的函数和变量 argv 命令行参数,包括脚本名称 exi ...
- eclipse 打开文件目录
用简单的配置方式 eclipse打开当前文件所在文件夹的插件 Run-->External Tools-->External Tools Configurations... new 一个 ...
- Oracle EBS-SQL (BOM-2):检查期间Bom的更改记录数.sql
Select MSI1.Segment1 上层编码, MSI1.Description 上层描述, MSI2.Segment1 ...
- 将String类型的数字字符转换成int
java.lang.Integer.parseInt(String) public static int parseInt(String s) throws NumberFormatException ...
- _extend用法总结
针对对象数组: 后面的属性会覆盖更新前面的属性 看代码: <!DOCTYPE html> <html> <head> <meta charset=" ...
- CSSOM View Module
就在8月份,也就是上次gf大姨妈来的时候,W3C出炉了CSSOM视图模块(CSS Object Model View)草案.CSSOM视图模块(CSSOM View Module)定义了一些 API, ...