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

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

一、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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值