当使用在一个对话框A(父对话框)内打开另一个对话框B(子对话框),如何实现父对话框的隐藏,然后当子对话框关闭时,如何将子对话框关闭的同时打开隐藏的父对话框?
在父对话框中创建并显示子对话框,同时隐藏父对话框:
void Student_Login::OnBnClickedButtonCc()
{
// TODO: 在此添加控件通知处理程序代码
ChooseCourse *m_dlg = new ChooseCourse(this);
m_dlg->Create(IDD_DIALOG_COURSE, this);
//隐藏本对话框
this->ShowWindow(SW_HIDE);
//显示子对话框
m_dlg->ShowWindow(SW_SHOW);
}
在子对话框中关闭子对话框同时显示出父对话框:
1、首先定义一个全局变量CWnd *m_pParent来保存从父对话框传过来的父对话框窗口句柄。
private:
CWnd *m_pParent;
2、在子对话框类的构造函数中将父对话框传过来的父对话框窗口句柄保存到m_pParent中。
ChooseCourse::ChooseCourse(CWnd* pParent )
: CDialogEx(IDD_DIALOG_COURSE, pParent)
{
m_pParent = pParent;
}
3、在子对话框函数中显示父对话框,同时关闭子对话框:
void ChooseCourse::OnBnClickedButtonBack1()
{
// TODO: 在此添加控件通知处理程序代码
m_pParent->ShowWindow(SW_SHOW);
DestroyWindow();
delete this;
}
大功告成!!!