在 MFC 中实现该界面布局和图片调整的方法如下:

  1. 在 MFC 中创建一个对话框应用程序。

  2. 打开对话框资源编辑器,将一个静态框控件拖放到对话框上,作为图片显示区域。

  3. 编辑对话框资源,将静态框控件的 ID 设置为 IDC_PICTURE。

  4. 打开对话框的类文件(例如 DialogName.cpp),添加以下代码:

BOOL CDialogName::OnInitDialog()
{
    CDialogEx::OnInitDialog();

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

    // 计算图片大小和间隔
    int margin = 20;  // 左右边距和上下边距
    int rows = 3;
    int cols = 4;
    int spacing = 10;  // 图片间隔
    int imageWidth = (screenWidth - 2 * margin - (cols - 1) * spacing) / cols;
    int imageHeight = (screenHeight - 2 * margin - (rows - 1) * spacing) / rows;

    // 获取静态框控件的位置和大小
    CRect rect;
    GetDlgItem(IDC_PICTURE)->GetWindowRect(&rect);
    ScreenToClient(&rect);

    // 调整静态框控件的位置和大小
    rect.left = margin;
    rect.top = margin;
    rect.right = rect.left + cols * imageWidth + (cols - 1) * spacing;
    rect.bottom = rect.top + rows * imageHeight + (rows - 1) * spacing;
    GetDlgItem(IDC_PICTURE)->MoveWindow(&rect);

    // 调整图片大小并居中显示
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            // 计算图片的位置和大小
            int imageLeft = rect.left + j * (imageWidth + spacing);
            int imageTop = rect.top + i * (imageHeight + spacing);
            int imageRight = imageLeft + imageWidth;
            int imageBottom = imageTop + imageHeight;

            // 创建或加载图片,并设置图片位置和大小
            CStatic* pImage = new CStatic;
            pImage->Create(_T(''), WS_CHILD | WS_VISIBLE | SS_BITMAP, CRect(imageLeft, imageTop, imageRight, imageBottom), this);
            pImage->SetBitmap((HBITMAP)LoadImage(NULL, _T('image.jpg'), IMAGE_BITMAP, imageWidth, imageHeight, LR_LOADFROMFILE));

            // 图片居中显示
            pImage->SetWindowPos(NULL, imageLeft, imageTop, imageWidth, imageHeight, SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);
        }
    }

    return TRUE;
}
  1. 将上述代码中的'image.jpg'替换为你自己的图片路径。

  2. 编译并运行程序,即可在界面上看到按照屏幕分辨率调整大小并居中显示的图片布局。


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

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