工控编程吧
标题: 上位机MFC如何显示位图文件 [打印本页]
作者: qq263946146 时间: 2019-7-31 11:18
标题: 上位机MFC如何显示位图文件
直接从磁盘加载 位图资源我们可以调用 函数LoadImage。
函数得到的是一个保本HBITMAP hBitmap
句柄可以转换为CBitmap类指针。
CBitmap* pBitmap = CBitmap::FromHandle(hBitmap);
然后就可以很方便的使用此指针了。
- //加载位图
- HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), _T("Demo.BMP"),
- IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
- if (hBitmap == NULL)
- {
- return;
- }
- CBitmap* pBitmap = CBitmap::FromHandle(hBitmap);
- //获得位图信息
- BITMAP bmpinfo;
- pBitmap->GetBitmap(&bmpinfo);
- //创建内存DC
- CDC MemDC;
- MemDC.CreateCompatibleDC(pDC);
- //将位图装入内存设备环境
- CBitmap* pOldBitmap = MemDC.SelectObject(pBitmap);
- //获得客户区矩形
- CRect rect;
- GetClientRect(&rect);
- //将位图从内存设备环境拷贝到屏幕设备环境
- pDC->StretchBlt(
- rect.left,
- rect.top,
- rect.Width(),
- rect.Height(),
- &MemDC,
- 0,
- 0,
- bmpinfo.bmWidth,
- bmpinfo.bmHeight,
- SRCCOPY);
- //恢复原来的位图
- MemDC.SelectObject(pOldBitmap);
复制代码
(, 下载次数: 0)