打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC 控件背景透明、文字背景透明
Visual C++  开发实战宝典
功能:位图上显示文字,背景透明。
void CP400Dlg::OnPaint() 
{
。。。。
CBitmap bmp;
bmp.LoadBitmap(IDB_YCH);
BITMAP bmInfo;
bmp.GetBitmap(&bmInfo);
int nBmpWidth,nBmpHeight;
nBmpWidth = bmInfo.bmWidth;
nBmpHeight = bmInfo.bmHeight;
CRect clientRC;
GetClientRect(clientRC);
CDC *pDC = GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&bmp);
pDC->StretchBlt(0,0,clientRC.Width(),clientRC.Height(),&memDC,0,0,nBmpWidth,nBmpHeight,SRCCOPY);
memDC.DeleteDC();
bmp.DeleteObject();
pDC->SetBkMode(TRANSPARENT);
CFont font;
font.CreatePointFont(350,"华文行楷",pDC);
pDC->SelectObject(&font);
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkColor(RGB(255,0,0));
pDC->TextOut(10,20,"江山如此多娇。");
pDC->TextOut(10,90,"引无数英雄竞折腰。");
}

功能:静态文本框去除背景,透明。
HBRUSH CP400Dlg::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)
{
if (pWnd == GetDlgItem(IDC_STATIC1))
{
 pDC->SetBkColor(RGB(125,255,0));    //文字背景
pDC->SetTextColor(RGB(255,0,0));     //文字颜色
  pDC->SetBkMode(TRANSPARENT);      //不显示文字背景
             hbr = (HBRUSH)::GetStockObject(NULL_BRUSH); //编辑框背景。注意:和文字背景不是一个意思。
}
}
// TODO: Return a different brush if the default is not desired
return hbr;
}

效果:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
绘制半透明位图
mfc中背景图片随着窗口大小的改变而改变
设置字体
Picturecontrol用法
mfc中图片大小怎么调整啊?
怎样使用MFC打开一幅图片
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服