vc模态与非模态对话框的创建

模态对话框和非模态对话框的区别?

模态对话框(modal):就是对话框出现后除了这个对话框外其他的东西不能点击

非模态对话框(modaless): 就是当非模态对话框打开后还可以点击对话框以外的内容。

 

无论哪一种对话框显示前 必须先定义类

如果我们定义了两个对话框类 第一个dlg1 dlg2我们先

我们现在想要做的是 让dlg1 是模态显示 dlg2非模态显示,ID为 ID_Modaless

在消息响应函数里面添加下面的代码,

在此还需要做的就是在 消息响应函数的开头添加 #include "dlg1.h" 和#include "dlg2.h"

//显示modal模式

dlg1 mydlg1 ;//我们先建一个 dlg1的对象mydlg1

mydlg1.DoModal();  //以modal方式显示

 

//显示modaless

dlg2 *mydlg2= new dlg2;

mydlg2->Creat(ID_Modaless);

mydlg2->ShowWindow(SW_SHOW);

需要注意的是

1、这里面是运用指针的方式显示的非模态对话框生命周期是整个程序的周期 然而当我们这个消息函数结束后这个指针也没有了,

这样这块地址我们就不能做其他用了

2、非模态对话框点击OK后窗口只是隐藏 而不是销毁,这里面我们可以调用OnOK函数 销毁。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值