对话框程序:模式和非模式
2016-05-09 21:06
183 查看
模式对话框:当对话框弹出后,无法操作其父窗口或者上一级窗口,直到关闭该对话框为止。
在主对话框关联类A的情况下,模式对话框创建步骤:新插入一个对话框资源,并添加所需控件
对新对话框生成新的对话框类B
对主对话框中的控件建立消息映射函数
在该消息映射函数中创建对话框类B的对象,如
B dlg; dlg.DoModal();
模式对话框的特点:
在关闭模式对话框前,无法操作背景窗口,除非本身就是背景窗口。
使用Dialog::DoModal函数弹出模式对话框,该函数执行过程是阻塞函数。因此,在栈内或堆内申请对话框类的对象都可以,申请栈内变量开发和运行效率较高。
非模式对话框:当对话框弹出后,不影响对它的父窗口或者上一级窗口操作。
在主对话框关联类A的情况下,非模式对话框创建步骤:新插入一个对话框资源,并添加所需控件
对新对话框生成新的对话框类C
对主对话框中的控件建立消息映射函数
在该消息映射函数中创建对话框类C的对象指针,如
C* pDlg = new C; pDlg->Create(IDD_TEST); pDlg->ShowWindow(SW_SHOW);
非模式对话框的特点:
在关闭非模式对话框前,不影响对背景窗口的操作。
使用Dialog::Create函数创建非模式对话框,该函数是非阻塞函数。因此,必须在堆内申请对话框资源,不能再栈内申请临时对象,因为临时对象在离开函数体时会自动销毁。
相关文章推荐
- MooBox 基于Mootools的对话框插件
- 基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
- C#实现在前端网页弹出警告对话框(alert)的方法
- Android开发必知 九种对话框的实现方法
- Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码
- Android列表对话框用法实例分析
- Visual C++中MFC消息的分类
- C#使用Word中的内置对话框实例
- MFC中Radio Button的用法详解
- MFC对话框中添加状态栏的方法
- MFC创建右键弹出菜单的方法
- MFC中动态创建控件以及事件响应实现方法
- C++ 关于MFC多线程编程的注意事项
- MFC程序对文件的处理方法
- MFC自定义消息的实现方法
- MFC实现在文件尾追加数据的方法
- MFC之ComboBox控件用法实例教程
- JavaScript弹出对话框的三种方式
- 用JavaScript实现对话框的教程
- 设计师如何设计正确的对话框按钮位置