C++教程 第5章.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C教程第5章

对话框与控件 本章主要内容 5.1 对话框概述 5.2 使用对话框 5.3 标准控件 5.4 公共控件 5.5 综合实例 5.1 对话框概述 5.1.1 对话框的组成与分类 5.1.2 基于对话框的应用程序 5.1.3 对话框类CDialog 5.1.4 对话框数据交换DDX和验证DDV 5.1.5 提示信息对话框 5.1.1 对话框的组成与分类 对话框主要由对话框资源和对话框类组成。 对话框资源确定了对话框窗口的表现形式 对话框的大小、风格等特性及对话框中控件的类型及位置 一个数据结构 对话框类提供了对话框的编程接口 要利用对话框资源创建对话框类,提供编程的接口管理对话框 对话框有两种类型:模态对话框和非模态对话框。 两种对话框在用资源编辑器设计和使用ClassWizard进行编程时的方法基本一致,但在创建和退出窗口时的方式有所不同。 ① 在创建时,模态对话框式由系统自动分配内存空间,因此,在退出对话框时,对话框对象会自动删除;非模态对话框则是需要用户来指定内存,退出时还需用户自己来删除对话框对象。 ② 在退出时,两种对话框所使用的终止函数不一样。模态对话框通过调用CDialog::EndDialog来终止;非模态对话框通过调用CWnd::DestroyWindow来终止。 5.1.3 对话框类CDialog CDialog类的派生关系如图所示 CDialog类的四个基本函数 OnInitDialog DoModal OnOk OnCancel 5.1.4 对话框数据交换DDX和验证DDV 对话数据交换(DDX)用于初始化对话框中的控件并获取用户的数据输入,而对话框数据验证(DDV)则用于自动验证对话框中的数据输入。 要在对话框中使用DDX和DDV,必须用ClassWizard创建数据成员、设置数据类型并指定验证规则。 5.1.5 提示信息对话框 提示信息对话框也称消息对话框,是用于显示简单信息的一类对话框,不需要用户创建可以直接使用。在Visual C++的MFC类库中提供了三个相应的函数,它们分别是CWnd::MessageBox、MessageBox和AfxMessageBox和函数。 这三个函数分别是CWnd类的成员函数、Windows API函数和MFC全局函数。三者的功能基本相同,但适用范围是有区别的。AfxMessageBox函数和::MessageBox,在程序中的任何位置都可调用;而CWnd::MessageBox函数只能用于象控件、对话框和窗口等窗口类中。 提示信息对话框常用图标类型 提示信息对话框常用按钮类型 5.2 使用对话框 5.2.1 一般对话框工作流程 5.2.2 创建对话框 5.2.3 添加控件及关联的成员变量 5.2.4 非模态对话框 5.2.5 公用对话框 5.2.1 一般对话框工作流程 5.2.2 创建对话框 在程序中创建一个对话框,首先要创建一个对话框资源,然后创建一个基于该对话框资源的对话框类。 对话框资源指定了对话框本身的属性和对话框中控件的属性,对话框类规定了对话框和对话框中每个控件的行为。 “Controls”工具栏 “Dialog”工具栏 5.2.3 添加控件及关联的成员变量 1 添加控件 2 添加关联的成员变量 3 添加成员变量后的程序分析 4 映射变量的管理 5 对话框类的实现 1 添加控件 在控件工具栏中选择所需要的控件,按下鼠标的左键(不要松开),将鼠标拖到对话框中松开,在对话框中添加一个指定的控件。 按照修改对话框标题的方法对每个控件的“ID”和“Caption” 进行修改,如表所示。各个控件的风格按照默认方式设置。 4 映射变量的管理 (1)映射变量的定义 映射变量必须定义在以下两行代码之间,才能被ClassWizard识别和处理: //{{AFX_DATA(CMaterialDlg) //(括号内为映射变量所属的类) //}}AFX_DATA (2)映射变量的初始化 映射变量的初始化必须放在以下两行代码(在对话框类的构 造函数中)之间,才能被ClassWizard识别和处理: //{{AFX_DATA_INIT(CMaterialDlg) //}}AFX_DATA_INIT (3)映射变量与对话框控制间的映射宏 映射变量与对话框控制间的映射宏必须放在以下两行代码(在函数DoDataExchange中)之间,才能被ClassWizard识别和处理: //{{AFX_DATA_MAP(CMaterialDlg) //}}AFX_DATA_MAP 5.2.4 非模态对话框 创建对话框——Create 显示对话框——CWnd::ShowWindow

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档