0001-MFC--对话框模态与非模态

0001-MFC--对话框模态与非模态  


1.我们先建立一个基于对话框的应用DWin1  (我的IDE是Visual Stdio 2008)

    建立后App向导会自动生成工程,工程中会自动生成一个CDWin1Dlg的对话框,是应用的主窗口


2.打开资源视图,在里面找到CDWin1Dlg,在里面加入2个按钮-----模态显示与非模态显示,如下图:

0001-MFC--对话框模态与非模态_第1张图片


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调试:

模态的显示界面(模态的窗口会盖住主窗口,此时的主窗口无法点击)

0001-MFC--对话框模态与非模态_第2张图片


非模态的显示界面(非模态的窗口也会盖住主窗口,但是此时的主窗口可以被操作,能被点击和移动)

0001-MFC--对话框模态与非模态_第3张图片


你可能感兴趣的:(ide)