标签:使用 文件 sp cti log 代码 bs new res
模态对话框类和非模态对话框类的创建是一样的,也就是说当有一个对话框类(假设名称为CMyDialog),既可以用它来创建模态对话框实例并显示,
也可以用它来创建非模态对话框实例显示。
1、创建模态对话框实例并显示
CMyDialog Dlg ;
Dlg.DoModal();
也就是说只需要调用对话框类的DoModal()即可实现创建并显示模态对话框。
2、创建非模态对话框实例并显示
方法一:设使用CMyDialog类的CUser,定义和实现CUser的文件分别是 User.h和User.cpp,定义(或者说声明)对话框类CMyDialog的文件是MyDialog.h,对话框类的资源ID是IDD_MYDIALOG.
则,首先在User.h中添加 #include “MyDialog.h” ,然后声明一个类的实例CMyDialog Dlg, 注:若是类的成员则应在相应构造函数中初始
再在User.cpp中:
if (!Dlg.m_hWnd)
{
Dlg.Create(IDD_MYDIALOG); //创建对话框
}
Dlg.ShowWindow(SW_SHOW);//显示对话框窗口
CWnd::ShowWindow(SW_SHOW);
创建和显示完成。
方法二:利用对话框类的指针动态创建
设使用CMyDialog类的类是CUser,定义和实现CUser的文件分别是 User.h和User.cpp,定义(或者说声明)对话框类CMyDialog的文件是MyDialog.h,对话框类的资源ID是IDD_MYDIALOG.
则,首先在User.h中添加 #include “MyDialog.h” ,然后声明一个指向类的指针CMyDialog* Dlg,在CUsr的构造函数中初始化 ;
并在CUser的析构函数中添加如下代码:
if (NULL != m_pTipDialog)
{
delete m_pTipDialog;
}
再在CUser.cpp中:
INT_PTR nRes(0);
if ( NULL == m_pTipDialog) //如果没有非模态对话框则创建非模态对话框
{
m_pTipDialog = new CTipDialog();
nRes = m_pTipDialog->Create(IDD_TIP_DIALOG, this );
}
m_pTipDialog->ShowWindow(SW_SHOW); //显示非模态对话框
创建和显示完成。
标签:使用 文件 sp cti log 代码 bs new res
原文地址:http://www.cnblogs.com/fwy-walking/p/4023114.html