MFC学习笔记之:创建模态对话框和非模态对话框

本文介绍了在MFC中如何创建模态和非模态对话框。模态对话框在显示时阻止用户执行其他操作,通过CTestDlg类和Create函数及ShowWindow函数实现。非模态对话框允许用户同时进行其他交互,使用指针在堆上分配内存以保持其存在,同时检查窗口句柄避免重复创建。
摘要由CSDN通过智能技术生成

       对话框分两类:模态(Modal)对话框和非模态(Modeless)对话框  

     1、模态对话框是实现时候无法执行其他操作,创建模态对话框的方法:

      先将对话框关联类,如:CTestDlg 。在点击的cpp文件中加入头文件#include “testdlg.h”,在点击OnClicked函数中(/*假设IDD_TESTDLG为已经定义的对话框资源的ID号*/):

    

    2、非模态对话框是实现时候可以执行其他操作,创建非模态对话框的方法:

      先将对话框关联类,如:CTestDlg 。在点击的cpp文件中加入头文件#include “testdlg.h”,不能用以上方法,因为非模态对话框dlg是个局部对象,OnClicked函数结束dlg也销毁(模态是暂停在那里的)。2解决方法(1.将对话框定义为成员变量;2.定义指针)。现用指针,在堆上分配内存(因为在堆上分配内存和程序的整个生命周期是一致的),改为:在点击OnClicked函数中:

  

这样就OK了,但是这样每次执行这个菜单命令都会创建一次这个非模态对话框,想要只能创建一个时,改为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值