如何使STATIC控件的背景透明以及动态改变控件文本内容时闪烁的问题

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一、用VC编写基于对话框的应用程序,用BMP位图作为对话框背景,对话框上的STATIC静态文本框,可以用以下消息函数使文本框的文字背景透明:  

HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 
 // TODO: Change any attributes of the DC here
 if( nCtlColor == CTLCOLOR_STATIC)    
 {  
  pDC->SetBkMode(TRANSPARENT);   //设置背景透明
  return   HBRUSH(GetStockObject(HOLLOW_BRUSH));  
  
 }  

 // TODO: Return a different brush if the default is not desired
 return hbr;

二、动态改变控件文本内容时闪烁,可以用以下函数解决这个问题:

 void   CXXXDlg::OnBtnStatic()    
  {  
  //   TODO:   Add   your   control   notification   handler   code   here 
  //    IDC_STATIC_ST为静态文本控件ID号  
  CStatic*   pSt   =   (CStatic*)GetDlgItem(   IDC_STATIC_ST);  
  pSt->SetWindowText("北京2008");  
  RECT   rect;  
  pSt->GetWindowRect(&rect);  
  ScreenToClient(&rect);  
  InvalidateRect(   &rect,FALSE   );  
  //Invalidate(FALSE);   //  整个客户区无效  
  }  

MFC 如何去去掉 CStatic静态框的背景色 使CStatic背景透明 MFC 如何去去掉 CStatic背景色 使CStatic背景透明 动态添加的CStatic背景色跟我们自绘的窗体颜色不同就会很难看 如何去掉CStatic控件背景色使之透明 先看原图 在窗体中重载这个消息 源码点这下载 示例代码如下 HBRUSH CSulutionFrm::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CPopUpFrm::OnCtlColor(pDC, pWnd, nCtlColor); 阅读详情

相关推荐

CStatic静态控件透明-完美解决

为公司开发的静态控件,解决了所有的透明显示问题 1.动态刷新,文字重叠问题 2.父窗口放大之后,背景不对问题 3.频繁刷新闪动问题。 csdn有个帖子几十页也没解决,足见开发的难度之高。

MFC Static控件背景透明文本覆盖重影

通过映射OnCtlColor消息,而后在该函数中使用pDC->SetBkMode(TRANSPARENT)使Static控件背景透明会出现:文本覆盖重影的问题,当改变控件的文本就会发生新文本与旧文本重叠的现象。    可以通过以下方式使Static控件文本在透明状态下改变不会产生文本重叠问题:    1、由于Static控件背景已经是透明的了,那么旧文本应该是画在Static控件的父

闪落世间的专栏 1619

MFC的CStatic子类化,解决背景透明,文本重叠,刷新闪烁

两个CStatic子类,良好的解决了背景透明动态设置文本,防止文本重叠,防止刷新闪烁,我在PC和工控机上测试效果很不错,网上很多人的分享并没有解决我的问题,这两个类是CodeProject上面的,只是我对其做了修改,修改部分DEMO中有注释,利用我的使用,所以就不要积分了,我觉还是很有参考价值的

static控件动态透明显示的完美解决方案

常用的解决办法可以通过重载OnCtlColor函数设置背景透明,再返回一个空画刷来解决。   [cpp] view plaincopy   01.if(nCtlColor == CTLCOLOR_STATIC )   02.{   03. pDC->SetBkMode(TRANSPARENT);//设置背景透明   04. pDC->SetTextColor(RGB(255,255,0)

anvz9idz05的专栏 608

MFC中Static控件透明,重影,长度问题

做MFC编程,Static控件是会经常用到的了,而使Static控件背景透明,以及改变文本的内容、字体、颜色等属性,都是会比较容易碰到的情况。 王道做法当然是继承CStatic然后重载OnPaint(),完全自己来画,这样能够获得最大的灵活性,但就是比较麻烦,像我这种比较懒的,就更喜欢用下面的懒方法了。 同样创建一个CStatic的派生类,处理父窗口的反射消息WM_CTLCOLOR,即

Angus_pei的专栏 1695

HSButton HSSpeedButton HSStaticText delphi 按钮控件

在delphi7 测试非常不错,简单好用

PB静态文本背景透明code

PB静态文本背景透明codePB静态文本背景透明code

动态Static文本导致字体重叠的解决方案

场景: 需要动态更新Static静态文本框的内容来显示不同状态信息 要求:设置文本框背景透明 方法:添加消息ON_WM_CTLCOLOR() HBRUSH CAppHelperDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCt...

bmjhappy的专栏 1308

Static control 透明,重影,长度问题

做MFC编程,Static控件是会经常用到的了,而使Static控件背景透明,以及改变文本的内容、字体、颜色等属性,都是会比较容易碰到的情况。 王道做法当然是继承CStatic然后重载OnPaint(),完全自己来画,这样能够获得最大的灵活性,但就是比较麻烦,像我这种比较懒的,就更喜欢用下面的懒方法了。 同样创建一个CStatic的派生类,处理父窗口的反射消息WM_CTLCOLOR,即添加HB

2667

MFC中Static控件编程应用几则

MFC中Static控件编程应用几则<br />Submitted by Xinyu on 2008, August 22, 21:44. 软件开发<br />做MFC编程,Static控件是会经常用到的了,而使Static控件背景透明,以及改变文本的内容、字体、颜色等属性,都是会比较容易碰到的情况。<br />王道做法当然是继承CStatic然后重载OnPaint(),完全自己来画,这样能够获得最大的灵活性,但就是比较麻烦,像我这种比较懒的,就更喜欢用下面的懒方法了。<br />同样创建一个CStat

hongya6088的专栏 4320

静态&动态更改MFC控件颜色&字体

静态&动态更改MFC控件颜色&字体 一、静态设置字体及颜色 1.dlg类下创建字体 CFont *m_pFont;//创建新的字体 2.字体的定义 m_pFont->CreateFont(32, // 字体高度 0, // 字体宽度 0,

qq_29405031的博客 1771
上一篇: vc 不同透明程度窗体
下一篇: 蛮有道理的八个问题
莫情莫钱
博客等级 码龄23年 24粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值