MFC 加载 BMP 图片并调整大小实现 3 行 4 列布局
在 MFC 中实现加载 BMP 图片,并根据屏幕分辨率调整图片大小以实现 3 行 4 列的布局,可以使用 CStatic 控件。
步骤如下:
-
添加 CStatic 控件: 在对话框资源中添加一个 CStatic 控件,并设置控件的 ID 和大小,以及左右边距和上下边距。
-
声明 CStatic 控件变量: 在对话框类的头文件中声明 CStatic 控件变量:
CStatic m_picture[12]; // 3 行 4 列,共 12 个图片
- 初始化 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 著作权归作者所有。请勿转载和采集!