(仅供使用VS MFC初学者学习,高手莫见笑)
在MFC中通常会使用点击一个按钮,弹出一个子对话框的基础知识,这些都是学习MFC的基础知识,也是非常重要的知识,这里我就简单的讲讲这些知识。

一. 设置主对话框

1.文件-新建项目(我设置的过程名为:EditSet)-MFC应用程序-该页面使用“基于对话框”-完成即可.
2.在“资源视图”中打开Dialog对话框,删除“TODO:在此处放置对话框控件”和“确定”、“退出”按钮。
3.在工具箱中添加一个按钮Button控件和一个编辑框Edit Control控件。可右键控件设置其属性。其ID我使用的就是默认的:IDC_BUTTON1、IDC_EDIT1.其中设置按钮的Caption为“子对话框”,即是设置其名称。
4.运行其显示的结果如下图所示:

二. 设置子对话框

1.在“资源视图”中添加一个新的对话框。右键Dialog,选择“添加资源”;
2.在弹出的对话框中双击Dialog,即实现新建一个对话框。默认名字为IDD_DIALOG1;

3.在子对话框中添加一个编辑框Edit Control控件,它的默认名为IDC_EDIT1,但它对应的是子对话框的ID名。点击状态栏的“测试对话框”按钮,测试当前对话框运行后的样式。

三. 主对话框调用子对话框(重点)

1.双击主对话框中的“子对话框”按钮,即可生成它相应的按钮函数。在XXXDlg.cpp文件(XXX为创建工程的过程名)中生成一个函数。

voidCEditSetDlg::OnBnClickedButton1()
{
    // TODO:在此添加控件通知处理程序代码
}

它表示点击该按钮就会执行相应函数中的响应操作。

2.双击IDD_DIALOG1子对话框的空白处,为该对话框创建一个对话框类。(也可打开类导向添加对话框类)

3.在弹出的“MFC添加类向导”中输入要添加类名(我常用C+XXX+Dlg命名对话框类),同时默认的基类为CDialogEx(扩展对话框类),并自动生成SubDlg.h\.cpp文件。

注意:VC6中默认Dialog的基类是CDialog,VS2012中Dialog基类默认选择是CDialogEx(Extend 扩展)。其中CDialogEx继承自CDialog,添加了一些功能:换背景图片、背景颜色。(后面还将设置子对话框的背景颜色)

4.在要调用该对话框的主对话框XXXDlg.cpp中引用子对话框类,即添加:

//引用子对话框类
#include"SubDlg.h"

5.在XXXDlg.cpp中生成的按钮函数OnBnClickedButton1()中添加调用子对话框的代码。

voidCEditSetDlg::OnBnClickedButton1()
{
    //实例自定义的子对话框类dlg
    CSubDlgdlg;
    //设置子对话框背景颜色黄色 CDiologEx中
    dlg.SetBackgroundColor(RGB(255,255,0));
    //DoModal点击按钮显示相应对话框
    if(dlg.DoModal()==IDOK)
    { }
}

6.运行如下图:当点击主对话框的“子对话框”按钮时,显示一个黄色背景的子对话框。

这样主对话框调用子对话框的基本步骤就实现了,上图中黄色的及为子对话框,当点击按钮后会弹出该对话框.希望大家能了解MFC的这一基础知识,同时下面这个博客中介绍了主对话框调用子对话框的几个步骤,方便大家学习:
http://blog.21ic.com/user1/7447/archives/2011/83411.html
这里要感谢很多博客,它们让我学到了很多知识,最后高手莫见笑,希望能帮助到大家吧!若有错误见谅.
(2013-6-8 夜2点 By:Eastmount)

MFC 基础知识:主对话框与子对话框(一)相关推荐

  1. MFC 基础知识:主对话框与子对话框(二)

    (仅供使用VS MFC初学者学习,高手莫见笑) 接"MFC 基础知识:主对话框与子对话框(一)"的内容 在"MFC 基础知识:主对话框与子对话框(一)"中Edi ...

  2. MFC 基础知识:对话框背景添加图片和按钮Button添加图片

    很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任何知识一段时间过后都比较容易忘记,但回顾 ...

  3. VC++6.0及MFC基础知识

    VC++6.0及MFC基础知识 这是早期的学习笔记,今天翻出来,觉得还有点价值,就转发到这里. Visual C++ 6.0的主界面 VC++6.0的MFC Windows 的三大模块就是以DLL( ...

  4. MFC基础知识与课程设计思路

    引言 本文致力于提供MFC的相关知识,以方便大家更好地认识MFC的使用方法.介绍将会分为以下几个部分:MFC初始文件的理解.MFC我们所使用的框架理解.MFC的进阶用法.MFC我在使用过程中遇到的问题 ...

  5. Win32窗口编程基础知识——主函数

    2019独角兽企业重金招聘Python工程师标准>>> 虽然说编程重要的是思想,用什么语言实现都是鸡肋,但是并不是说你对一个语言一点也不会看一遍就可以精通,我的经历就是以前只注意C/ ...

  6. 数据库基础知识---主键和索引的关系

    主键和索引的关系 一. 主键 二. 索引 三. 主键和索引总结 一. 主键 主键的唯一作用就是唯一标识表中的某一行数据. 分为单一主键和联合主键 单一主键:只用一列就能唯一标识一行. 联合主键:当使用 ...

  7. MFC基础知识(四)——双缓冲解决刷屏时闪烁

    本文主要介绍:在利用MFC画图或图像显示时,有时候需要调用OnDraw()函数刷新屏幕,而屏幕往往会发生闪烁,本文主要介绍利用双缓冲解决闪屏问题. 关于闪屏方面的介绍分析见博文: http://blo ...

  8. MFC TabControl插件 子对话框调用主对话框功能函数和变量

    前言 在子对话框中调用主对话框的功能函数和变量的方法,大多都是通过获取主对话框指针实现的. 一.创建TabControl控件和子对话框 链接: HisinWang写的MFC:TabCtrl使用教程 二 ...

  9. mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...

    很长时间没有看MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又回顾了下相关知识.的确,任 // TODO: 在此添加额外的初始化代 ...

最新文章

  1. RDKit | 基于随机森林的化合物活性二分类模型
  2. Coursera ML笔记 - 神经网络(Learning)
  3. 链表c的经典实现(一)
  4. python中的encode()和decode()函数
  5. 数控加工编程计算机的配置,计算机辅助数控加工编程.ppt
  6. 利用FS寄存器获取KERNEL32.DLL基址算法的证明(ZZ)
  7. 给大家展示一下最近在Yeslab安全实验室测试的设备!
  8. python getostime_python转换在os.utime中使用的datetime
  9. linux看是不是db2实例用户,切换到实例用户以后不能执行 db2
  10. 基于模板的代码生成器
  11. 探索科学的奥秘之门Science,Cell, Nature
  12. Path接口与Files工具类
  13. c语言上机作业五套含答案,计算机二级C语言上机题库100套(含答案)
  14. 用ntsd -c q -p PID 杀进程
  15. redhat7 安装 docker
  16. Android自定义view半圆形错误提示框和简单动画使用
  17. udp简单通讯示例---心跳示例
  18. PCB Windows Petya(永恒之蓝)勒索病毒补丁检测代码
  19. jQuery 事件 - blur() 方法
  20. LibFuzzer学习(一):轻松找到心脏出血漏洞

热门文章

  1. 表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN
  2. Oracle 10g OCM Exam 大纲
  3. linux 文件打开数设置, too ma
  4. p20pro 鸿蒙,后置镜头变液态双摄?华为P50Pro再曝光,搭载鸿蒙OS传感器变1寸
  5. C语言题目集-分西瓜
  6. 阳光学院计算机科学与技术需要英语四级,给各位想报阳光的朋友一点建议!来自学长的亲身经历!...
  7. AMD、CMD、CommonJS、ES6(import/export)
  8. 小程序如何选择云服务器,小程序怎么选择云服务器配置
  9. ajax 入参为list_ajax向后台传入List
  10. STL源码剖析---红黑树原理详解下