以下是一个示例代码,用于多字节 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 函数来绘制图片。

请注意,这只是一个示例代码,您需要根据自己的需求进行修改和适应。

MFC 多字节 BMP 图片加载与绘制 - 代码示例

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

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