非模态对话框和模态对话框

编程入门 行业动态 更新时间:2024-10-28 04:24:10

非模态<a href=https://www.elefans.com/category/jswz/34/1761322.html style=对话框和模态对话框"/>

非模态对话框和模态对话框

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

创建步骤如下:

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();

 

更多推荐

非模态对话框和模态对话框

本文发布于:2023-06-17 04:23:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/753687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:对话框   模态

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!