对话框分为模态和非模态对话框两种

模态对话框(Modal)

d.DoModal()

必须关闭才能返回主窗口

非模态对话框(Modaless)

p->Create(IDD_DIALOG,this);

p->ShowWindow(SW_SHOW);

一、建立mfc工程,添加Edit Control组件设置属性如图

二、添加两个button 到对话框并分别设置两个button的caption属性为打开模态对话框 和 打开非模态对话框

三、在资源视图中、右键单击dialog,选择插入dialog,并设置对话框id属性为IDD_FIRST_DIALOG,右键单击选择添加类,类名填写CFirstDlg,点击确定
同理添加第二个对话框,id属性为IDD_SECOND_DIALOG,右键单击选择添加类,类名填写CSecondDlg,点击确定

四、主窗口双击打开模态对话框进入主窗口对应文件dialogDlg.cpp

在dialogDlg.cpp 文件中添加
#include "FirstDlg.h"
void CdialogDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CFirstDlg dlg;
dlg.DoModal();
}
同理在主窗口双击打开非模态对话框进入主窗口对应文件dialogDlg.cpp添加
#include "SecondDlg.h"
void CdialogDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
//必须要用指针
CSecondDlg *pDlg = new CSecondDlg;
pDlg->Create(IDD_SECOND_DIALOG,this);//arg1:要创建的对话框ID,arg2:父窗口指针
pDlg->ShowWindow(SW_SHOW);
}
由于非模态对话框使用指针,所以对话框在关闭时必须将它销毁,
类视图->选中CSecondDlg->属性对话框中选择重写选中PostNcDestroy
进入SecondDlg.cpp 添加
void CSecondDlg::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类
delete this;

CDialogEx::PostNcDestroy();
}

至此两种模式的对话框都已添加完毕。

转载于:https://www.cnblogs.com/Malphite/p/10822920.html

019.MFC_两种对话框相关推荐

  1. 【JetPack】视图绑定 ( ViewBinding ) 各种应用 ( 视图绑定两种方式 | Activity 布局 | 对话框布局 | 自定义组件布局 | RecyclerView 列表布局 )

    文章目录 I . 视图绑定 ( ViewBinding ) 界面的两种方式 II . Activity 界面中 应用 视图绑定 ( ViewBinding ) III . Dialog 对话框界面中 ...

  2. 【REACT NATIVE 系列教程之十三】利用LISTVIEW与TEXTINPUT制作聊天/对话框获取组件实例常用的两种方式...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2346.html ...

  3. c语言mfc怎么插入背景图片,MFC 对话框添加背景图片详细过程(两种方法)

    给对话框添加背景图片方法很多,在此贴出两种很常见的方法.一种是通过读取位图资源显示位图(BitMap) step: 1.创建内存设备上下文: 2.选择位图,将其装入内存设备上下文: 3.使用BitBl ...

  4. 文件夹选择对话框 JS实现的两种方案

    文件夹选择对话框 JS实现的两种方案 /**  * browseFolder.js  * 该文件定义了BrowseFolder()函数,它将提供一个文件夹选择对话框  * 以供用户实现对系统文件夹选择 ...

  5. MFC 对话框添加背景图片详细过程(两种方法)

    给对话框添加背景图片方法很多,在此贴出两种很常见的方法.一种是通过读取位图资源显示位图(BitMap) step: 1.创建内存设备上下文: 2.选择位图,将其装入内存设备上下文: 3.使用BitBl ...

  6. Android Studio导入Eclipse项目的两种方法

    Android Studio导入Eclipse项目有两种方法,一种是直接把Eclipse项目导入Android Studio,另一种是在Eclipse项目里面进行转换,然后再导入Android Stu ...

  7. vs2013我建了两个对话框 选择主对话框_VS/MFC编程教程:如何创建对话框模板和修改对话框属性...

    创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.在本节中先 ...

  8. jmeter的两种参数化方法

    2019独角兽企业重金招聘Python工程师标准>>> JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名 ...

  9. C#自动实现Dll(OCX)控件注册的两种方法

    打印这篇文章 尽管MS为我们提供了丰富的.net framework库,我们的程序C#开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写.当需要用到Dll引用的时候 ...

最新文章

  1. 激光雷达Lidar Architecture and Lidar Design(下)
  2. iOS8新特性 计算 cell 的高度
  3. cramer定理_Lundberg-Cramer定理
  4. Spring MVC @RequestMapping注解详解
  5. 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)
  6. 中医提到的气是否真实存在?
  7. F. It‘s a bird! No, it‘s a plane! No, it‘s AaParsa!
  8. 【Node】新手入门 基于Express,Sequelize、IIS的MVC项目
  9. python itemgetter_Python operator.itemgetter
  10. 数据标准在数据治理中的意义
  11. PHP中try、catch、finally的执行顺序
  12. ttl接地是高电平还是低电平_数电练习题
  13. 安卓linux开机画面,Android开机logo简单修改方法
  14. Intro to Xamarin.Android Xamarin Android入门教程 Lynda课程中文字幕
  15. Spire.Doc 指定位置插入书签和获取书签内容
  16. html实现宿舍管理系统,宿舍管理系统部分代码实现
  17. Bex5登陆端口异常
  18. 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校计算机科学本科专业-(20页)-原创力文档...
  19. ads1115的程序,不知道问题出在哪里,一直读出数据都是0。大佬们帮忙看看,感激不尽
  20. raster包—aggregate函数

热门文章

  1. mysql导出数据字典6_MySQL利用Navicat导出数据字典
  2. java tcp 编程实例_Java实现基于TCP的通讯程序实例解析
  3. mysql sql len_MySQL的查询计划中ken_len的值计算方法
  4. mysql mybatis模糊查询语句_详解MyBatis模糊查询LIKE的三种方式
  5. 女生做大数据有发展前景吗?能学会吗?
  6. WEB入门实践-张晨光-专题视频课程
  7. android 两足机器人,基于Android的双足机器人语音控制系统研究
  8. java调用C++ DLL库方法
  9. python meataclass详解
  10. 《好未来编程题》字符串中找出连续最长的数字串