直接上代码,写在BOOL CXXXDlg::OnInitDialog():
//author:autumoon
//日期:2022-10-31
int nDstWidth = 1280;
int nDstHeight = 900;
//得到显示器大小
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
//再用MoveWindow
CRect rcTemp;
rcTemp.TopLeft() = CPoint(cx / 2 - nDstWidth / 2, cy / 2 - nDstHeight / 2);
rcTemp.BottomRight() = CPoint(cx / 2 + nDstWidth / 2, cy / 2 + nDstHeight / 2);
MoveWindow(&rcTemp);
效果,窗口以指定的大小和位置居中,同时触发OnSize():
如果包含控件缩放的话,控件同时也会自动缩放: