MFC 设置对话框初始位置为屏幕中央
时间: 2024-02-18 14:59:51 浏览: 44
要将MFC对话框的初始位置设置为屏幕的中心,可以在类的OnInitDialog()方法中调用SetWindowPos()方法。该方法接受五个参数:左上角x坐标,左上角y坐标,宽度,高度和标志位。可以将标志位设置为SWP_SHOWWINDOW以显示对话框。例如,以下代码将对话框移动到屏幕中央:
```
BOOL CMyDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 获取屏幕大小
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
// 获取对话框大小
CRect dlgRect;
GetWindowRect(&dlgRect);
int dlgWidth = dlgRect.Width();
int dlgHeight = dlgRect.Height();
// 计算对话框左上角坐标
int x = (screenWidth - dlgWidth) / 2;
int y = (screenHeight - dlgHeight) / 2;
// 移动对话框
SetWindowPos(NULL, x, y, dlgWidth, dlgHeight, SWP_SHOWWINDOW);
return TRUE;
}
```
这将在对话框显示时将其移动到屏幕的中心。
相关问题
MFC 设置对话框初始位置
要设置MFC对话框的初始位置,可以在类的OnInitDialog()方法中调用SetWindowPos()方法。该方法接受五个参数:左上角x坐标,左上角y坐标,宽度,高度和标志位。可以将标志位设置为SWP_SHOWWINDOW以显示对话框。例如,以下代码将对话框移动到屏幕右下角:
```
BOOL CMyDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 获取屏幕大小
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
// 获取对话框大小
CRect dlgRect;
GetWindowRect(&dlgRect);
int dlgWidth = dlgRect.Width();
int dlgHeight = dlgRect.Height();
// 计算对话框左上角坐标
int x = screenWidth - dlgWidth;
int y = screenHeight - dlgHeight;
// 移动对话框
SetWindowPos(NULL, x, y, dlgWidth, dlgHeight, SWP_SHOWWINDOW);
return TRUE;
}
```
这将在对话框显示时将其移动到屏幕的右下角。
MFC 设置对话框位置
要设置MFC对话框的位置,可以使用CWnd类的MoveWindow()方法。该方法接受四个参数:左上角x坐标,左上角y坐标,宽度和高度。可以在对话框类的OnInitDialog()方法中调用MoveWindow()来设置对话框的位置。例如,以下代码将对话框移动到屏幕中央:
```
BOOL CMyDialog::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 获取屏幕大小
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
// 获取对话框大小
CRect dlgRect;
GetWindowRect(&dlgRect);
int dlgWidth = dlgRect.Width();
int dlgHeight = dlgRect.Height();
// 计算对话框左上角坐标
int x = (screenWidth - dlgWidth) / 2;
int y = (screenHeight - dlgHeight) / 2;
// 移动对话框
MoveWindow(x, y, dlgWidth, dlgHeight);
return TRUE;
}
```