QQ登录

只需一步,快速开始

上位机MFC如何显示位图资源

[ 复制链接 ]
位图操作对应的类为CBitmap。
我们可以实例化一个变量,然后加载位图
        CBitmap bitmap;
        if (!bitmap.LoadBitmap(IDB_BITMAP1))
        {
                return;
        }

IDB_BITMAP1为我们事先 导入到工程的位图ID.
如果想要获取位图大小等信息。
我们可以
        //获得位图信息
        BITMAP bmpinfo;
        bitmap.GetBitmap(&bmpinfo);

之后我们就可以使用CDC的成员函数SelectObject。选择位图
        //将位图装入内存设备环境
        CBitmap* pOldBitmap = MemDC.SelectObject(&bitmap);


具体可以参考例程OnPaint中的代码
  1. void CGkbc8Dlg::OnPaint()
  2. {
  3.         if (IsIconic())
  4.         {
  5.                 CPaintDC dc(this); // device context for painting

  6.                 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

  7.                 // Center icon in client rectangle
  8.                 int cxIcon = GetSystemMetrics(SM_CXICON);
  9.                 int cyIcon = GetSystemMetrics(SM_CYICON);
  10.                 CRect rect;
  11.                 GetClientRect(&rect);
  12.                 int x = (rect.Width() - cxIcon + 1) / 2;
  13.                 int y = (rect.Height() - cyIcon + 1) / 2;

  14.                 // Draw the icon
  15.                 dc.DrawIcon(x, y, m_hIcon);
  16.         }
  17.         else
  18.         {
  19.                 CPaintDC dc(this);
  20.                         //加载位图
  21.         CBitmap bitmap;
  22.         if (!bitmap.LoadBitmap(IDB_BITMAP1))
  23.         {
  24.                 return;
  25.         }

  26.         //获得位图信息
  27.         BITMAP bmpinfo;
  28.         bitmap.GetBitmap(&bmpinfo);

  29.         //创建内存DC
  30.         CDC MemDC;
  31.         MemDC.CreateCompatibleDC(&dc);

  32.         //将位图装入内存设备环境
  33.         CBitmap* pOldBitmap = MemDC.SelectObject(&bitmap);

  34.         //获得客户区矩形
  35.         CRect rect;
  36.         GetClientRect(&rect);

  37.         //将位图从内存设备环境拷贝到屏幕设备环境
  38.         dc.BitBlt(
  39.                 rect.left + (rect.Width() - bmpinfo.bmWidth) / 2,
  40.                 rect.top + (rect.Height() - bmpinfo.bmHeight) / 2,
  41.                 bmpinfo.bmWidth,
  42.                 bmpinfo.bmHeight,
  43.                 &MemDC,
  44.                 0,
  45.                 0,
  46.                 SRCCOPY);

  47.         //恢复原来的位图
  48.         MemDC.SelectObject(pOldBitmap);
  49.                 CDialog::OnPaint();
  50.         }
  51. }
复制代码


上位机MFC如何显示位图资源

上位机MFC如何显示位图资源

请点击此处下载

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

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

文件名称:上位机MFC如何显示位图资源.rar 
文件大小:241.16 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

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

  

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

  

QQ联系我

微信扫扫联系我

  

回复

使用道具 举报

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