非模态对话框和模态对话框_创建
一、非模态对话框:创建后,主程序还可以运行。
创建步骤如下:
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();
非模态对话框和模态对话框_创建相关推荐
- 一文搞懂如何创建基于对话框的模态对话框和非模态对话框
Windows应用程序工作的基本流程是从用户那里得到数据,经过相应的处理之后,再把处理结果输出到屏幕.打印机或者其他的输出设备上.那么,应用程序是如何从用户那里得到数据,并且再将修改后的数据显示给用户 ...
- Qt中的对话框(模态,非模态,关于,问题,文件)
2019独角兽企业重金招聘Python工程师标准>>> 项目pro中添加 CONFIG += C++11 mianwindow.h文件 #ifndef MAINWINDOW_H #d ...
- Qt模态对话框/非模态对话框/半模态对话框
模态对话框 阻塞同一应用程序中其它可视窗口输入的对话框: 显示模态对话框最常见的方法是调用其exec()函数: #pragma execution_character_set("utf-8& ...
- qt设置模态对话框并设置对话框的位置
引言 当对话框弹出的时候,其它的操作不能进行,这个对话框就是模态对话框,非模态对话框弹出的时候,其它的操作依旧可以做.以上就是通俗的理解模态对话框与非模态对话框.下面实现当模态对话框弹出的时候,设置弹 ...
- Qt 模态对话框不模态的问题
自定义对话框,通过函数this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);设置了对话框的显示 ...
- VS2019/MFC编程入门之对话框:向导对话框的创建及显示
上一讲讲了属性页对话框和相关的两个类CPropertyPage类和CPropertySheet类,对使用属性页对话框做准备.本节将为大家演示如何创建向导对话框. 仍然以前面的"加法计算器&q ...
- html弹出非模式窗口,JavaScript模态窗口和非模态窗口(转)
JavaScript中弹出的窗口有模态窗口和非模态窗口.模态窗口就是打开一个子窗口,如果这个子窗口不关闭,就不能操作它的父窗口,原来程序暂停执行,直到这个模态窗口关闭 后才回到原来程序继续.非模态的就 ...
- java 非模态_Qt 之 模态、非模态、半模态窗口的介绍及 实现QDialog的exec()方法
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/GoForwardToStep/arti ...
- Qt之模式、非模式、半模式对话框
关于"模式"和"非模式"对话框,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,我们称之为"半模式". 模式对话框 ...
最新文章
- Scratch等级考试(一级)模拟题
- 台3岁女童疑把玩风枪致死案疑点多 警方将调查厘清
- 惠普打印机怎么无线连接电脑_惠普打印机连不上无线?怎么解!
- 在Saas发展的黄金时代里带你理解SaaS设计
- Collections和Collection的区别:
- Cisco IOS Cookbook 中文精简版(续)
- 调用图片文件夹中的任意图片随机显示_hexo框架下,实现图片一键式上传到七牛云
- kerberos安全认证
- neo4j︱Cypher完整案例csv导入、关系联通、高级查询(三)
- 深度神经网络模型与前向传播
- kpi绩效考核流程图_XX公司KPI绩效考核案例.doc
- 解决七彩虹断剑C.A320M-K PRO V14在Win11下前置面板音频接口无法使用的问题
- 数学建模基础理论【二】(定积分)
- 全国高考今日开启 报名人数再创历史新高 2022全国高考时间科目安排 优积科技-祝同学们高考顺利
- 晓月_【斗战神学习四十】金山寺
- 技术科普丨解密无处不在的EMC干扰
- Hive入门 ------ Hive是什么,产生背景
- 调用百度地图Api,定位到大西洋的问题
- 【UE4】材质编辑器教程笔记整理
- 独立站SEO如何分析竞争对手之策略与教程