在 MFC 中实现加载 BMP 图片,并根据屏幕分辨率调整图片大小以实现 3 行 4 列的布局,可以使用 CStatic 控件。

步骤如下:

  1. 添加 CStatic 控件: 在对话框资源中添加一个 CStatic 控件,并设置控件的 ID 和大小,以及左右边距和上下边距。

  2. 声明 CStatic 控件变量: 在对话框类的头文件中声明 CStatic 控件变量:

CStatic m_picture[12]; // 3 行 4 列,共 12 个图片
  1. 初始化 CStatic 控件: 在对话框类的 OnInitDialog() 函数中初始化 CStatic 控件:
BOOL CYourDialog::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    // 获取屏幕分辨率
    int screenWidth = ::GetSystemMetrics(SM_CXSCREEN);
    int screenHeight = ::GetSystemMetrics(SM_CYSCREEN);

    // 计算图片的宽度和高度,以及图片之间的间隔
    int imageWidth = (screenWidth - 2 * leftMargin - 3 * gap) / 4;
    int imageHeight = (screenHeight - 2 * topMargin - 2 * gap) / 3;

    // 设置图片控件的位置和大小
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 4; j++) {
            int index = i * 4 + j;
            m_picture[index].MoveWindow(
                leftMargin + j * (imageWidth + gap),
                topMargin + i * (imageHeight + gap),
                imageWidth,
                imageHeight
            );
        }
    }

    // 加载并显示图片
    for (int i = 0; i < 12; i++) {
        CString imagePath = 'path_to_your_bmp_image'; // 替换为你的图片路径
        CBitmap bmp;
        bmp.LoadBitmap(imagePath);
        m_picture[i].SetBitmap(bmp);
    }

    return TRUE;
}

注意:

  • 替换代码中的 'path_to_your_bmp_image' 为你的图片路径。
  • leftMargin 和 topMargin 分别代表左右边距和上下边距。
  • gap 代表图片之间的间隔。

通过以上步骤,就可以在 MFC 界面上实现加载 BMP 图片,并根据屏幕分辨率调整图片大小,使其正常显示,并且图片都居中在屏幕上。


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

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