对话框分两类:模态(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了,但是这样每次执行这个菜单命令都会创建一次这个非模态对话框,想要只能创建一个时,改为: