MFC: 加载和绘制资源中的 BMP 图片 (C++ 代码示例)
下面是一个示例代码,演示了如何使用 MFC 读取 res 中的 5 张 bmp 图片,并计算位图的宽度和高度,然后将其加载并画在规定的坐标上,并进行变量的回收处理。
#include "stdafx.h"
#include "resource.h"
void DrawBitmap(CDC* pDC, CBitmap* pBitmap, int x, int y)
{
BITMAP bm;
pBitmap->GetBitmap(&bm);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(pBitmap);
pDC->BitBlt(x, y, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY);
memDC.DeleteDC();
}
void LoadAndDrawBitmap(UINT nID, CDC* pDC, int x, int y)
{
CBitmap bitmap;
bitmap.LoadBitmap(nID);
DrawBitmap(pDC, &bitmap, x, y);
bitmap.DeleteObject();
}
void CMyView::OnDraw(CDC* pDC)
{
LoadAndDrawBitmap(IDB_BITMAP1, pDC, 10, 10);
LoadAndDrawBitmap(IDB_BITMAP2, pDC, 50, 10);
LoadAndDrawBitmap(IDB_BITMAP3, pDC, 90, 10);
LoadAndDrawBitmap(IDB_BITMAP4, pDC, 130, 10);
LoadAndDrawBitmap(IDB_BITMAP5, pDC, 170, 10);
}
在上面的示例中,LoadAndDrawBitmap 函数用于加载并绘制位图,其中 nID 参数为位图资源的 ID,x 和 y 参数为绘制的坐标。函数内部使用 CBitmap 类来加载位图资源,并调用 DrawBitmap 函数进行绘制。绘制完成后,通过调用 DeleteObject 函数回收使用的位图变量。在 OnDraw 函数中调用 LoadAndDrawBitmap 函数来绘制 5 张位图。
原文地址: https://www.cveoy.top/t/topic/hdbm 著作权归作者所有。请勿转载和采集!