Windows对话框分为两类:模态对话框和非模态对话框。
模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。 非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。
接下用用VS2010创建示例:
1、新建MFC应用程序:
2、在MFC应用程序向导中设置应用程序类型为“基于对话框”类型:
然后,后面直接默认,点击完成即可;
3、编辑DialogEx对话框如下所示:
4、在资源视图中添加模拟对话框:
选中DialogEx.rc右键选择添加对话框操作:
添加完效果如图所示,可以在Dialog资源视图中看到有个新加的对话框:
5、编辑Dialog对话框内容:
6、为Dialog对话框添加类:(右击->添加类):
在此命名为CMyDialog;
7、回到主对话框IDD_DIALOGEX_DIALOG为“弹出模拟对话框”添加按钮点击的事件处理程序:
在函数void CDialogExDlg::OnBnClickedButton1()中添加如下代码:
INT_PTR nRes; // 用于保存DoModal函数的返回值 CMyDialog myDlg; // 构造对话框类CMyDialog的实例
nRes = myDlg.DoModal(); // 弹出对话框
并且在DialogExDlg.cpp中包含包含CMyDialog的头文件:#include "MyDialog.h",保存后,即可查看运行效果;
8、运行: