You can dynamically create 4 dialogs, here is to create a dynamically child dialog: // new a child dialog from the heap memory CRect rect; CChildDlg *pDlg=new CChildDlg(); // create a child dialog,and get the window rect. pDlg->Create(IDD_ChildDlg,NULL); pDlg->GetWindowRect(rect); // move it to point x =10, y =20 pDlg->MoveWindow(10,20,rect.bottom,rect.left,TRUE); // show and update the child window pDlg->ShowWindow(SW_SHOWNORMAL); pDlg->UpdateWindow(); pDlg = NULL;