MFC 多字节 BMP 图片加载与绘制 - 代码示例
以下是一个示例代码,用于多字节 MFC 读取资源中的 5 张 BMP 图片,并将它们加载到指定的坐标上:
#include "stdafx.h"
#include "resource.h"
#define NUM_IMAGES 5
// 定义图片的宽度和高度
#define IMAGE_WIDTH 100
#define IMAGE_HEIGHT 100
CImage imageArray[NUM_IMAGES]; // 存储图片的数组
void LoadImages()
{
for (int i = 0; i < NUM_IMAGES; i++)
{
// 加载资源中的图片
imageArray[i].LoadFromResource(AfxGetInstanceHandle(), IDR_BMP_IMAGE1 + i);
}
}
void DrawImages(CDC* pDC)
{
int x = 50; // 起始 x 坐标
int y = 50; // 起始 y 坐标
for (int i = 0; i < NUM_IMAGES; i++)
{
// 绘制图片到指定坐标
imageArray[i].Draw(pDC->m_hDC, x, y, IMAGE_WIDTH, IMAGE_HEIGHT);
// 更新下一个图片的坐标
x += IMAGE_WIDTH + 10;
}
}
class CMyApp : public CWinApp
{
public:
BOOL InitInstance()
{
CWinApp::InitInstance();
// 创建窗口
CFrameWnd* pFrame = new CFrameWnd();
if (!pFrame)
return FALSE;
// 加载图片资源
LoadImages();
// 设置窗口的客户区大小
pFrame->Create(NULL, _T("MFC Multiple BMP Images"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 600, 200));
// 显示窗口
pFrame->ShowWindow(SW_SHOW);
pFrame->UpdateWindow();
return TRUE;
}
};
class CMyView : public CView
{
public:
void OnDraw(CDC* pDC)
{
DrawImages(pDC);
}
};
class CMyFrame : public CFrameWnd
{
public:
CMyFrame()
{
// 将视图类与窗口关联
m_view.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL);
SetActiveView(&m_view);
}
protected:
CMyView m_view;
};
CMyApp theApp;
在资源文件(例如 resource.h)中,定义 5 个连续的 BMP 图片资源 ID,IDR_BMP_IMAGE1 到 IDR_BMP_IMAGE5。确保资源文件中包含这些 BMP 图片。
这个示例代码首先在 LoadImages 函数中加载了 5 张 BMP 图片到 imageArray 数组中。然后,在 DrawImages 函数中,它使用 Draw 函数将图片绘制到指定的坐标上。
最后,在 CMyApp 类的 InitInstance 函数中,它创建了一个窗口,并将 CMyView 类与该窗口关联。在 CMyView 类的 OnDraw 函数中,它调用了 DrawImages 函数来绘制图片。
请注意,这只是一个示例代码,您需要根据自己的需求进行修改和适应。
原文地址: https://www.cveoy.top/t/topic/hvQ7 著作权归作者所有。请勿转载和采集!