对话框程序:模式和非模式

本文介绍了模式对话框和非模式对话框的区别。模式对话框在弹出后阻止用户操作父窗口,直到关闭;而非模式对话框允许同时操作父窗口。创建模式对话框通常使用Dialog::DoModal,而非模式对话框则使用Dialog::Create,需要注意内存管理和函数的阻塞特性。
摘要由CSDN通过智能技术生成
模式对话框:当对话框弹出后,无法操作其父窗口或者上一级窗口,直到关闭该对话框为止。

在主对话框关联类A的情况下,模式对话框创建步骤:

  1. 新插入一个对话框资源,并添加所需控件
  2. 对新对话框生成新的对话框类B
  3. 对主对话框中的控件建立消息映射函数
  4. 在该消息映射函数中创建对话框类B的对象,如
B dlg;
dlg.DoModal();

模式对话框的特点:

  1. 在关闭模式对话框前,无法操作背景窗口,除非本身就是背景窗口。
  2. 使用Dialog::DoModal函数弹出模式对话框,该函数执行过程是阻塞函数。因此,在栈内或堆内申请对话框类的对象都可以,申请栈内变量开发和运行效率较高。
非模式对话框:当对话框弹出后,不影响对它的父窗口或者上一级窗口操作。

在主对话框关联类A的情况下,非模式对话框创建步骤:

  1. 新插入一个对话框资源,并添加所需控件
  2. 对新对话框生成新的对话框类C
  3. 对主对话框中的控件建立消息映射函数
  4. 在该消息映射函数中创建对话框类C的对象指针,如

                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值