MFC 基础知识:主对话框与子对话框(一)

来源:互联网 发布:h5微场景页面源码 编辑:程序博客网 时间:2024/04/29 15:25

(仅供使用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)