让所有的静态文本都透明好显示背景色

转载 2012年03月22日 11:27:43

让所有的静态文本都透明好显示背景色

一、CStatic从文件夹加载位图

HBITMAP hbitmap; 
//获得指向静态控件的指针 
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP); 
//获得位图句柄 
HBITMAP Bitmap; 
//设置静态控件的样式,使其可以使用位图,并试位标显示使居中 
pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE); 
//设置静态控件显示位图 
pStatic->SetBitmap(hBitmap);

二、设置对话框背景(小图可以漫延填充)

1、把你的图包含到程序的“Bitmap资源里,提示说该资源使用了大于256色的调色板,在VC里无法编辑等等,点确定就可以 

2定位到 void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码 
else 

//CDialog::OnPaint();//
要禁止这个调用 
CPaintDC dc(this); 
CRect rect; 
GetClientRect(&rect); 
CDC dcMem; 
dcMem.CreateCompatibleDC(&dc); 
CBitmap bmpBackground; 
bmpBackground.LoadBitmap(IDB_BITMAP); 
//IDB_BITMAP
是你自己的图对应的ID 
BITMAP bitmap; 
bmpBackground.GetBitmap(&bitmap); 
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground); 
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0, 
        bitmap.bmWidth,bitmap.bmHeight,SRCCOPY); 
}

三、CStatic控件透明

可以这样作的: 
HBRUSH CShutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

//让所有的静态文本都透明好显示背景色
if(nCtlColor   ==   CTLCOLOR_DLG)   
{   
        //返回对话框的颜色   
   hbr=(HBRUSH)::CreateSolidBrush(RGB(146,161,202));     
}   
if(nCtlColor==CTLCOLOR_STATIC)   
{   
   //让静态文本框透明   
   pDC->SetBkMode(TRANSPARENT);   
   //pDC->SetTextColor(RGB(255,255,255));   //设置字体颜色白色   
   hbr=(HBRUSH)::GetStockObject(NULL_BRUSH);   
}   
if (nCtlColor==CTLCOLOR_EDIT)//设置EDIT控件的颜色
{
   HBRUSH hbr1 = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   hbr1=(HBRUSH)::CreateSolidBrush(RGB(0,0,0)); //背景黑色
   pDC->SetTextColor(RGB(255,255,255)); //文字白色
   pDC->SetBkMode(TRANSPARENT);   
   return hbr1;
}
return hbr;
}

四、CStatic背景透明后文本覆盖的问题

http://blog.vckbase.com/hatemath/archive/2005/08/04/10485.aspx

MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件

MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效。 注:可以设置透明背景,但还不能做到透明度设置(如50%透明度)         如果设置了背景色,就不保留透明背景        ...
  • Cashey1991
  • Cashey1991
  • 2012年05月08日 11:55
  • 11913

【Html码农】CSS实现背景透明,文字不透明,兼容所有浏览器

http://www.cnblogs.com/PeunZhang/p/4089894.html 重点内容入口: IE6和部分IE7内核的浏览...
  • CrackLibby
  • CrackLibby
  • 2016年02月03日 11:37
  • 3566

CentOS下Qt窗口透明效果失效,成黑色背景的问题

一、问题        简介 二、运行图 (1)如下图1所示。 三、详解 1、开始 (1)开始...
  • taiyang1987912
  • taiyang1987912
  • 2014年07月07日 09:11
  • 5456

CSS实现背景透明,文字不透明,兼容所有浏览器

来源:http://www.cnblogs.com/PeunZhang/p/4089894.html#solve 11.11是公司成立的日子,16岁啦,我呢3岁半,感谢公司给了这样一个平台,...
  • a576736858
  • a576736858
  • 2016年06月07日 16:11
  • 12245

MFC 可以设置背景色、字体、字体颜色、透明背景的 Static 静态文本控件

MFC库里没有符合这个条件的控件,于是我自己写了一个,初步测试有效。 注:可以设置透明背景,但还不能做到透明度设置(如50%透明度)         如果设置了背景色,就不保留透明背景        ...
  • Cashey1991
  • Cashey1991
  • 2012年05月08日 11:55
  • 11913

控件背景色+颜色渐变的背景+静态文本动态显示无重影

  • 2010年11月03日 19:07
  • 296KB
  • 下载

MFC静态文本控件如何设置字体--大小和颜色及背景色

CFont font;  font.CreateFont(10,10,0,0,FW_BLACK,FALSE,FALSE,   FALSE,GB2312_CHARSET,OUT_DEFAULT_PR...
  • u014023993
  • u014023993
  • 2014年04月14日 09:58
  • 1130

重拾MFC小细节之设置静态文本前、背景色

在大一时,学过MFC,不过那时刚接触编程,C/C++学完不久,跟重要的是没动手编程,后来又做ACM去了。现在大三了,各种实验课设老师都要求用VC可视化,于是借着机会学了点MFC皮毛,在此总结一些常用技...
  • xj2419174554
  • xj2419174554
  • 2014年01月14日 10:49
  • 847

重载静态文本控件CStatic,支持背景贴图和透明,v1.1

  • 2012年07月16日 22:00
  • 32.61MB
  • 下载

关于VC对话框静态文本设置背景透明的问题

  • 2012年08月24日 22:26
  • 13KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让所有的静态文本都透明好显示背景色
举报原因:
原因补充:

(最多只允许输入30个字)