BOOL CXXXDlg::OnInitDialog()
{
.......
CRect rtClient;
GetWindowRect(&rtClient);
rtClient -= rtClient.TopLeft();
CRect refRect = CRect(0, 0, 1024,768);
CRect rectDlg = CRect(0, 0, width, height); //对话框大小
rtClient += CSize((refRect.Width() - rectDlg.Width()) / 2, (refRect.Height() - rectDlg.Height()) / 2); //居中显示
MoveWindow(rtClient); //或者用SetWindowPos(&wndTopMost,rtClient.left,rtClient.top,
rtClient.Width(),rtClient.Height(),SWP_SHOWWINDOW);
.......
}
int CXXXDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CRect rtThis;
GetClientRect(&rtThis);
//对话框内部控件位置利用与rtThis进行计算
}
当SubclassDlgItem与MoveWindow同时出现时
使用顺序为:
先调用SubclassDlgItem,再MoveWindow!