1. 模态对话框和非模态对话框的区别
Windows中对话框分为模态对话框和非模态对话框。
模态对话框是指当该对话框显示后,会屏蔽其父窗口的操作,只允许操作当前对话框。
如:文本文档中的[打开]对话框
非模态对话框是指当该对话框显示后,还可以在其父窗口中进行其他操作。
如:文本文档中的[查找]对话框
2. 模态对话框和非模态对话框创建实例
2.1 新建MFC工程,创建一个“基于对话框”的程序,对话框上会自动生成[确定]和[取消]按钮。
2.2 在该工程中,打开“资源视图”,在“Dialog”节点中插入一个对话框,将其ID设为:IDD_DIALOG。
2.3 双击[确定]按钮,在其回调函数中添加相应程序。
创建模态对话框
void CMfcDialogDlg::OnBnClickedOk()
{
ModalDialog *myModalDialog=new ModalDialog;
myModalDialog->DoModal();
}
创建非模态对话框
void CMfcDialogDlg::OnBnClickedOk()
{
CDialog *dlg=new CDialog;
dlg->Create(IDD_DIALOG);
dlg->ShowWindow(SW_SHOW);
}
另:
”令其父窗口无效,直到对话框结束“------Modal对话框
”父窗口与对话框共同运行“------Modeless对话框
摘自:《深入浅出MFC》P27
来源:oschina
链接:https://my.oschina.net/u/1253014/blog/287816