模态对话框与非模态对话框的区别

感情迁移 提交于 2019-12-10 16:03:33
 

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!