非模态对话框和模态对话框_创建

MFC积累 专栏收录该内容
32 篇文章 1 订阅

一、非模态对话框:创建后,主程序还可以运行。

创建步骤如下:

1.1先建立一个基本对话框MFC工程,在资源列表添加一个对话框资源


1.2将创建的对话框修改名字和ID,比如将ID名为:IDD_TIP_DIALOG

 

1.3给对话框添加一个类,类名称为:TipDlg。(注意:TipDlg类的基类为CDialog)

则在解决方案列表可以看到创建了一个TipDlg.h和TipDlg.cpp文件。

 


 

1.4在主对话框头文件添加一个虚函数和定义指向TipDlg类的指针,源文件添加delete TipDlg程序,用来注销资源。

//*****头文件******

virtual~CMainPro1Dlg();//创建虚函数,类退出后,自动释放非模态对话框资源

private:

   TipDlg *pTipDlg;

 

 

 

//*********源文件***************

 

1.5在主对话框添加一个Test按钮,并且双击,在其内添加如下程序



TipDlg *pTipDlg = new TipDlg();//对指针进行初始化

   pTipDlg->Create(IDD_TIP_DIALOG, this);

   pTipDlg->ShowWindow(SW_SHOW);

 

1.6创建对话框完成,执行程序,如下。

 

总结:主要步骤是,创建新对话框后,关联一个类,然后用一个指针指向该类;接着用该指针创建对话框和显示对话框,最后在虚构函数中销毁该指针,释放资源。即:

TipDlg *pTipDlg = new TipDlg();//对指针进行初始化

   pTipDlg->Create(IDD_TIP_DIALOG, this);

   pTipDlg->ShowWindow(SW_SHOW);

deletepTipDlg;//在析构函数中写入

二、模态对话框:程序执行时,只能运行该对话框,直到对话框程序执行完毕后,才能再次执行主对话框。

模态对话框的创建和使用跟非模态对话框类似,其步骤如下:

2.1按照非模态对话框1.1到1.4的步骤创建好对话框和关联类。

2.2在主界面添加一个按钮,并且添加事件处理函数

2.3在该按钮添加如下代码:

TipDlg pdlg;

   pdlg.DoModal();

 



2.4运行执行程序,得到如下结果。

 

总结:模态对话框的函数代码为:

TipDlg pdlg;

   pdlg.DoModal();

三、非模态对话框和模态对话框用法总结

3.1相同点:两者添加对话框资源和关联类的操作步骤是一样的。

3.2不同点:两者创建和显示的函数不一样。

3.2.1非模态对话框创建和显示函数

TipDlg *pTipDlg = new TipDlg();//对指针进行初始化

   pTipDlg->Create(IDD_TIP_DIALOG, this);

   pTipDlg->ShowWindow(SW_SHOW);

3.2.2模态对话框创建和显示函数

TipDlg pdlg;

   pdlg.DoModal();

 

  • 1
    点赞
  • 0
    评论
  • 9
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值