MFC 加载并绘制多个 BMP 图片
要加载 MFC 中的 5 张 bmp 图片并在规定的坐标上绘制,可以按照以下步骤进行:
-
在 MFC 的资源文件中添加 5 个位图资源(.bmp 文件),并分别命名为 IDB_BITMAP1、IDB_BITMAP2、IDB_BITMAP3、IDB_BITMAP4 和 IDB_BITMAP5。
-
在对应的对话框或视图类中添加以下代码:
// 在头文件中声明用于绘制的位图变量
CBitmap m_bitmap1, m_bitmap2, m_bitmap3, m_bitmap4, m_bitmap5;
// 在 OnInitDialog 或 OnInitialUpdate 等初始化函数中加载位图资源
m_bitmap1.LoadBitmapW(IDB_BITMAP1);
m_bitmap2.LoadBitmapW(IDB_BITMAP2);
m_bitmap3.LoadBitmapW(IDB_BITMAP3);
m_bitmap4.LoadBitmapW(IDB_BITMAP4);
m_bitmap5.LoadBitmapW(IDB_BITMAP5);
// 在 OnPaint 函数中绘制位图
CPaintDC dc(this); // 获取绘图设备上下文
// 绘制第一张位图
CDC memDC;
memDC.CreateCompatibleDC(&dc);
memDC.SelectObject(&m_bitmap1);
dc.BitBlt(x1, y1, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY);
// 绘制第二张位图
memDC.SelectObject(&m_bitmap2);
dc.BitBlt(x2, y2, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY);
// 绘制第三张位图
memDC.SelectObject(&m_bitmap3);
dc.BitBlt(x3, y3, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY);
// 绘制第四张位图
memDC.SelectObject(&m_bitmap4);
dc.BitBlt(x4, y4, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY);
// 绘制第五张位图
memDC.SelectObject(&m_bitmap5);
dc.BitBlt(x5, y5, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY);
// 注意替换 x1、y1 等变量为实际的坐标值,替换 bmpWidth、bmpHeight 为位图的宽度和高度
这样就可以将 5 张 bmp 图片加载并绘制在指定的坐标上。请根据实际情况修改代码中的变量和函数调用。
原文地址: https://www.cveoy.top/t/topic/hvnY 著作权归作者所有。请勿转载和采集!