显示模态模态对话框和非模态对话框

模态对话框类和非模态对话框类的创建是一样的,也就是说当有一个对话框类(假设名称为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); //显示非模态对话框

 

创建和显示完成。

 

转载于:https://www.cnblogs.com/fwy-walking/p/4023114.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值