打开APP
userphoto
未登录

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

开通VIP
CStatic从文件夹加载位图

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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
卓为VC——界面/窗口——VC界面/窗口的一些小技巧
VC 控件背景透明、文字背景透明
改变多个Edit控件的背景色
CStatic设置文字、字体、颜色和OnCtlColor的使用
VC MFC中修改STATIC的文本颜色
VC?使用OnCtlColor函数来改变控件颜色(引用)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服