vc模态与非模态对话框的创建
2012-10-03 22:51
585 查看
模态对话框和非模态对话框的区别?
模态对话框(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函数 销毁。
模态对话框(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函数 销毁。
相关文章推荐
- vc创建模态和非模态对话框
- VC模态对话框和非模态对话框的创建和关闭
- 模态和非模态对话框的创建与销毁过程
- vc 模态和非模态对话框关闭过程
- vc的模态对话框和非模态对话框
- 非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别
- vc的模态对话框和非模态对话框
- MFC模态与非模态对话框的创建与销毁
- VC中建立模态对话框和非模态对话框
- 模态和非模态对话框的创建
- 第六节 模态与非模态对话框的创建
- VC 窗口创建以及窗口之间传递数据、传递消息(模态、非模态)
- VC非模态对话框创建和销毁
- VC 窗口创建以及窗口之间传递数据、传递消息(模态、非模态)
- 模态和非模态对话框的创建
- vc 模态和非模态对话框关闭过程
- QT 模态与非模态对话框的创建与退出
- vc 模态和非模态对话框关闭过程
- MFC 模态/非模态对话框的创建
- vc 模态对话框和非模态对话框