(以下主对话框类为 MainDlg)
一、建立模态对话框:
1.在资源视图里插入Dialog,对新建的对话框进行更改属性添加需要的控件等操作。
2.在新建的对话框中右键添加类,添加新的对话框类CModelDlg。
3.在MainDlg.h中包含ModelDlg的头文件:#include "CModelDlg.h"。
4.使用如下方式打开模态对话框:
CModelDlg dlg; // 定义对话框类CModelDlg的对象dlg
INT_PTR nResponse = dlg.DoModal(); // 弹出对话框dlg,并将DoModal函数的返回值)赋值给nResponse
if (nResponse == IDOK) // 判断返回值是否为OK
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL) // 判断返回值是否为Cancel
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
二、建立非模态对话框:
1.在资源视图里插入Dialog,对新建的对话框进行更改属性添加需要的控件等操作。
2.在新建的对话框中右键添加类,添加新的对话框类CModelessDlg。
3.在MainDlg.h中包含CModelessDlg的头文件:#include "CModelessDlg.h"。
4.在MainDlg.h中为CMainDlg类添加private成员变量CModelessDlg *m_pModelessDlg;
6.在MainDlg类的构造函数中初始化成员变量m_pModelessDlg=NULL;
6.使用如下方式打开模态对话框:
if (NULL == m_pModelessDlg)// 如果指针变量m_pModelessDlg的值为NULL,则对话框还未创建,需要动态创建
{
// 创建非模态对话框实例
m_pModelessDlg = new CModelessDlg();
m_pModelessDlg->Create(IDD_MODELESS_DIALOG, this);
}
// 显示非模态对话框
m_pModelessDlg->ShowWindow(SW_SHOW);
7.在CMainDlg类的解析函数中按如下方式来销毁窗口释放窗口指针
1)在CMainDlg.h中添加析构函数的声明~CMainDlg();
2)在CMainDlg.cpp中定义析构函数:
CMainDlg::~CMainDlg()
{
if (NULL != m_pModelessDlg)
{
// 删除非模态对话框对象
delete m_pModelessDlg;
}
}