下面是一个示例代码,演示了如何使用 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,xy 参数为绘制的坐标。函数内部使用 CBitmap 类来加载位图资源,并调用 DrawBitmap 函数进行绘制。绘制完成后,通过调用 DeleteObject 函数回收使用的位图变量。在 OnDraw 函数中调用 LoadAndDrawBitmap 函数来绘制 5 张位图。

MFC: 加载和绘制资源中的 BMP 图片 (C++ 代码示例)

原文地址: https://www.cveoy.top/t/topic/hdbm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录