QQ登录

只需一步,快速开始

上位机MFC对话框图片背景设置

[ 复制链接 ]
对话框程序框架可以很方便完整一些简单功能,但其背景不是很好看。
例程通过代码将指定位图设置为对话框 背景;
效果如图:

上位机MFC对话框图片背景设置

上位机MFC对话框图片背景设置


另外基于CFormView程序同样可用此方法实现背景图片设置,但其默认情况可缩放窗口,所以还得多一步处理。具体方法,在附件一同附有另一实例,可参阅;

实现过程:
1.首先是建立对话框工程,并准备一位图作为对话框 背景用,加载到工程中,得到位图资源ID  IDB_BITMAP1
2.在对话框窗口类中添加两变量        CBitmap m_Background;//对话框背景图   CBrush  m_BrushHol;//控件背景画刷
并在OnInitDialog函数中初始化
        m_Background.LoadBitmap(IDB_BITMAP1);
        m_BrushHol.CreateStockObject(HOLLOW_BRUSH);

3.对话框背景设置消息WM_ERASEBKGND与控件设置消息WM_CTLCOLOR的处理函数,编辑函数就可实现我们想要的功能,函数如下
  1. BOOL CGkbc8Dlg::OnEraseBkgnd(CDC* pDC)
  2. {
  3.         CDC dcMemory;
  4.         dcMemory.CreateCompatibleDC(pDC);
  5.         CBitmap* pOldBitmap = dcMemory.SelectObject(&m_Background);

  6.         BITMAP bm; //Create Bitmap Handle to get dimensions
  7.         m_Background.GetBitmap(&bm); //Load Bitmap into handle
  8.         CSize sBitmap = CSize(bm.bmWidth, bm.bmHeight);
  9.         pDC->BitBlt(0,0,sBitmap.cx,sBitmap.cy,&dcMemory,0,0,SRCCOPY);
  10.         dcMemory.SelectObject(pOldBitmap);

  11.         return TRUE;
  12.         //return CDialog::OnEraseBkgnd(pDC);
  13. }

  14. HBRUSH CGkbc8Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  15. {
  16. //        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  17. //        return hbr;
  18.         pDC->SetBkMode(TRANSPARENT);
  19.         if( pWnd->GetDlgCtrlID() == IDC_STATIC)//设置指定控件文本颜色
  20.         {
  21.                 pDC->SetTextColor(RGB(255, 0, 0));
  22.         }
  23.         return m_BrushHol;
  24. }
复制代码
4.最后是程序退出时,对两个变量的清理工作,当然不清理也行,程序退出,系统会自动清理程序的全部资源
        m_Background.DeleteObject();
        m_BrushHol.DeleteObject();


请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:gkbc8.rar 
文件大小:411.9 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:gkbc8_.rar 
文件大小:217.32 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索