0001-MFC--对话框模态与非模态
1.我们先建立一个基于对话框的应用DWin1 (我的IDE是Visual Stdio 2008)
建立后App向导会自动生成工程,工程中会自动生成一个CDWin1Dlg的对话框,是应用的主窗口
2.打开资源视图,在里面找到CDWin1Dlg,在里面加入2个按钮-----模态显示与非模态显示,如下图:
3.把要显示的窗口建出来
在应用中建立2个对话框类:分别是CModelDlg与CNoModelDlg(建立类后会自动在资源里添加对应的对话框)
4.在里加入新建的两个对话框的的声明
CModelDlg m_modelDlg;
CNoModelDlg m_noModelDlg;
给CDWin1Dlg里的模态与非模态的两个按钮添加点击事件的相应代码:
void CDWin1Dlg::OnBnClickedButton1()
{
m_modelDlg.DoModal();
}
void CDWin1Dlg::OnBnClickedButton2()
{ m_noModelDlg.Create(IDD_NOMODELDLG);
m_noModelDlg.ShowWindow(SW_SHOW);
}
按Ctrl+F5调试:
模态的显示界面(模态的窗口会盖住主窗口,此时的主窗口无法点击)
非模态的显示界面(非模态的窗口也会盖住主窗口,但是此时的主窗口可以被操作,能被点击和移动)