非模态对话框

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

感情迁移 提交于 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); } 另: ”令其父窗口无效,直到对话框结束“-