首先应该有一个主对话框MainDialog,两个子对话框ChildDialog1、ChildDialog2,其中两个子对话框的属性Style=Child,Border=None;
分别对应类CMainDialog、CChildDialog1、CChildDialog2;
两个子对话框的ID分别为IDD_CHILD1_DIALOG、IDD_CHILD2_DIALOG
1)、在主对话框上添加一个Picture Control控件,属性Visible=False,主要作用是提供区域的参考;
2)、在CMainDialog.h中分别声明一下两个变量
CChildDialog1 *m_Child1Dlg;
CChildDialog2 *m_Child2Dlg;
3)、
CRect Rect;
m_Child1Dlg= new CChildDialog1 ;
m_Child2Dlg= new CChildDialog2 ;
//创建非模态对话框
m_SimpleConicDlg->Create(IDD_CHILD1_DIALOG, this);
m_ComplexConicDlg->Create(IDD_CHILD2_DIALOG, this);
//获取区域
GetDlgItem(IDC_PICTURE_LOCALREC)->GetWindowRect(&Rect);
//将对话框移动到该区域并显示出来
m_Child1Dlg->MoveWindow(Rect);
m_Child1Dlg->ShowWindow(SW_SHOW);
4)、如果是根据主对话框中的ComBox中的内容来显示不同的对话框
只需要在改控件的单击响应函数中判断内容,
if()
{
***
m_Child2Dlg->ShowWindow(SW_HIDE);
m_Child1Dlg->MoveWindow(Rect);
m_Child1Dlg->ShowWindow(SW_SHOW);
}
eles
{
m_Child1Dlg->ShowWindow(SW_HIDE);
m_Child2Dlg->MoveWindow(Rect);
m_Child2Dlg->ShowWindow(SW_SHOW);
}
5)、如果要获取子对话框中的值,要在子对话框类中声明对应的成员变量,将控件中的值传递给成员变量
然后在主对话框程序中调用该成员变量即可