对话框
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows编程基础
东软人才实训中心
Copyright 2010 By Neusoft Group. All rights reserved
1
本课程旨在向学员介绍:
1)对话框和对话框类2)模式对话框
3)无模式对话框
4)属性页对话框
5)通用对话框时间:学时6
教学方法:讲授+课上练习+课下作业
第四章对话框
2
3
•Windows 应用程序的基本工作流程是从用户那里得到数据,经过相应的处理后,再把计算结果输出到屏幕或打印机。获取数据的方法会涉及很重要的界面对象-对话框。•首先学习对话框应用程序的好处:
–它比基于文档/视图应用程序更易于理解
–涉及的类少,但与文档/视图应用程序有相同的威力。
学习对话框的重要性
4
•主要有以下两种
–模态(Modal)对话框,必须首先响应这个对话框才可以进行其他动作。
–非模态(Modaless)对话框,用户可以操作该程序的其他窗口。
对话框的类型
CDialog类
•CDialog类从CWnd类派生而来,所以它继承了CWnd类的成员函数,具有CWnd类的基本功能,可以编写代码移动、显示或隐藏对话框,并能根据对话框的特点增加新的成员函数,扩展它的功能。
CObject
CmdTarget
CWnd
CDialog
5
6
对话框类相关成员函数
用于关闭对话框窗口
CDialog::EndDiaolg()响应WM_INITDIALOG 消息CDialog::OnInitDialog()
单击取消或Esc 调用该函数,内部调用EndDialog()CDialog::OnCancel()
单击OK 按钮调用该函数,内部调用EndDialog()CDialog::OnOK()
根据对话框模板资源创建非模态对话框CDialog::Create()
激活模态对话框,显示对话框窗口直到该窗口关闭返回CDialog::DoModal()
功能描述成员函数
7
属性页对话框类简介
•MFC 中创建对话框的类除了CDialog 类外,还有
CPropertySheet 和CPropertyPage ,后两者是创建属性页
和向导对话框的基础。
8
普通对话框应用程序组成•对话框主要由以下两部分组成:
–对话框模板:对话框模板定义了对话框的特性(比如大小、位置和风格)以及对话框中每个控件的类型和位置。–对话框类:从CDialog 类派生的对话框类提供编程接口来管理对话框。
9
框架生成的对话框应用程序•Simple 对话框应用程序相关类组成:
–CSimpleApp 类,父类是CWinApp 类–CSimpleDlg 类,父类是CDialog –CAboutDlg 类,父类是CDialog
10基本对话框应用程序开发•基本对话框应用程序开发方法
–设计对话框模板资源
–为对话框进行初始化工作
–使用ClassWizard 添加数据成员和成员函数
设计对话框模板资源
控件布局工具栏控件工具栏
对话框模板
11
12
设计对话框模板重要工作内容
•对话框模板资源设计重要工作内容
–从Controls 工具箱中挑选合适的控件,并调整其位置和大小–设置控件的ID ,Caption 及其他属性
–选择Layout/Test
验证设计效果
13
对话框类中相关的RC 文件对照IDD_SIMPLE_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Simple"
FONT 9, "宋体"
BEGIN
DEFPUSHBUTTON "确定",IDOK,260,7,50,14PUSHBUTTON "取消",IDCANCEL,260,23,50,14LTEXT "TODO: 在这里设置对话控制。
",IDC_STATIC,50,90,200,8
END
14
添加对话框类对应的成员变量
•使用ClassWizard 添加成员变量
–int m_nLength;
–int m_nWidth;
–int m_nArea
15
void CSimpleDlg::OnComputeArea()
{
UpdateData( TRUE );
m_nArea= m_nLength* m_nWidth;
UpdateData( FALSE );
}
16
17
成员变量在对话框的构造函数中完成成员变量的初始化取得更新后的值对话框对象
在OnInitDialog 中对控件初始化
调用
UpdateData(TRUE)获得控件的值
•对话框的数据交换是通过DoDataExchange函数来实现.
–如:DDX_Text(pDX, IDC_NUM1, m_num1);•UpdateData函数自动调用DoDataExchange;
–UpdateData(TRUE)将控件中的数据传给数据成员;
–UpdateData(FALSE)则将数据从数据成员中传送给对应的控件。
18