MFC 关于在对话框上的同一区域显示不同的内容(子对话框)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bailang_zhizun/article/details/52776934

首先应该有一个主对话框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_Child
2Dlg->ShowWindow(SW_SHOW);

}

5)、如果要获取子对话框中的值,要在子对话框类中声明对应的成员变量,将控件中的值传递给成员变量

然后在主对话框程序中调用该成员变量即可

展开阅读全文

没有更多推荐了,返回首页