工控编程吧

标题: 上位机MFC如何显示位图文件 [打印本页]

作者: qq263946146    时间: 2019-7-31 11:18
标题: 上位机MFC如何显示位图文件
直接从磁盘加载 位图资源我们可以调用 函数LoadImage。
函数得到的是一个保本HBITMAP hBitmap
句柄可以转换为CBitmap类指针。
CBitmap* pBitmap = CBitmap::FromHandle(hBitmap);
然后就可以很方便的使用此指针了。
  1. //加载位图
  2.         HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), _T("Demo.BMP"),
  3.                 IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
  4.         if (hBitmap == NULL)
  5.         {
  6.                 return;
  7.         }
  8.         CBitmap* pBitmap = CBitmap::FromHandle(hBitmap);

  9.         //获得位图信息
  10.         BITMAP bmpinfo;
  11.         pBitmap->GetBitmap(&bmpinfo);

  12.         //创建内存DC
  13.         CDC MemDC;
  14.         MemDC.CreateCompatibleDC(pDC);

  15.         //将位图装入内存设备环境
  16.         CBitmap* pOldBitmap = MemDC.SelectObject(pBitmap);

  17.         //获得客户区矩形
  18.         CRect rect;
  19.         GetClientRect(&rect);

  20.         //将位图从内存设备环境拷贝到屏幕设备环境
  21.         pDC->StretchBlt(
  22.                 rect.left,
  23.                 rect.top,
  24.                 rect.Width(),
  25.                 rect.Height(),
  26.                 &MemDC,
  27.                 0,
  28.                 0,
  29.                 bmpinfo.bmWidth,
  30.                 bmpinfo.bmHeight,
  31.                 SRCCOPY);

  32.         //恢复原来的位图
  33.         MemDC.SelectObject(pOldBitmap);
复制代码
(, 下载次数: 0)