В прошлом шаге у нас диалог помещался куда душе угодно. Но местоположение можно предусмотреть заранее. Заведем на диалоге элемент управления статик, чтобы знать где диалог будет находиться, сделаем его невидимым.
Ну, а теперь в OnInitDialog() просто нужно получить координаты статика и поместить по ним диалог.
BOOL CTestChildDlg::OnInitDialog() { ........ // TODO: Add extra initialization here CWnd * pWnd = GetDlgItem( IDC_STATIC_1 ); CRect cr; pWnd->GetWindowRect(&cr); cm.MoveWindow(&cr) ; return TRUE; // return TRUE unless you set the focus to a control }
Запускаем и смотрим:
Точно на том месте.