第8章(1) 乘法计算器_y

上传人:今*** 文档编号:115006675 上传时间:2019-11-12 格式:PPT 页数:84 大小:945KB
返回 下载 相关 举报
第8章(1) 乘法计算器_y_第1页
第1页 / 共84页
第8章(1) 乘法计算器_y_第2页
第2页 / 共84页
第8章(1) 乘法计算器_y_第3页
第3页 / 共84页
第8章(1) 乘法计算器_y_第4页
第4页 / 共84页
第8章(1) 乘法计算器_y_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《第8章(1) 乘法计算器_y》由会员分享,可在线阅读,更多相关《第8章(1) 乘法计算器_y(84页珍藏版)》请在金锄头文库上搜索。

1、基于案例的Visual C+程序设计教程 第8章 对话框和控件 (1) 1 本讲主要内容 1. 基于对话框的应用程序 2. 静态文本控件 3. 文本编辑框控件 4. 按钮控件 5. 为控件定义关联变量 6. DDX/DDV 7. CString 2 8.1 案例描述 本章以计算器为案例背景,从简单到 复杂逐步实现多个版本的计算器程序,从 中学习对话框的工作原理以及各种控件的 使用方法。 3 8.2 基于对话框的应用程序 静态文本控件 文本编辑框控件按钮控件 4 8.2.1 基于对话框的应用程序 通过前面章节C+的学习,读者已经 熟悉了如何构建控制台应用程序,但它不 是真正意义上的Windows

2、可视化程序。 本讲以构建乘法计算器程序为例,开 始介绍基于对话框的Windows可视化程 序的编写方法。 5 建立对话框应该程序的操作步骤: (1)启动Visual C+ 6.0集成开发环境, 单击菜单栏中File|New命令,打开New窗 口。 【例8-1】乘法计算器。实现两个十进制 数的相乘运算。 6 (2)在New窗口中选择Projects选项卡,在列 表中选择MFC Appwizardexe项,在Project name文本框中输入工程名Multiplication,在 Location文本框中设置工程文件存放的位置, 如:“E:VCMultiplication” 。 7 工程类型 工

3、程名 保存位置 8 (3)单击OK按钮,弹出MFC Appwizard Step 1窗口 基于对话框的 应用程序 9 (4)选择Dialog based单选项,单击Next按钮, 打开MFC AppWizard Step 2 of 4窗口 10 (5)保持默认选项,单击Next按钮,打开MFC AppWizard Step 3 of 4窗口 11 (6)保持默认选项,单击Next按钮,打开MFC AppWizard Step 4 of 4窗口 12 (7)保持默认选项,单击Finish按钮,打开New Project Information窗口 13 (8)单击OK按钮完成对话框应用程序的创建

4、, 返回Visual C+ 6.0集成开发环境,开始进入 可视化程序设计阶段。 14 15 8.2.2 控件的基本概念 控件就是编程开发工具提供的、规范化的 、独立的小部件,它是可视化开发工具的重要 组成部分。在对话框与用户的交互过程中,控 件担任着重要角色。 16 8.2.3. 对话框组成及运行机制 Multiplication.h和Multiplication.cpp定义应用程序 类,负责完成应用程序的初始化、程序的启动和 程序运行结束时的清理工作; MultiplicationDlg.h和MultiplicationDlg.cpp定义主 对话框类,负责完成对话框界面的生成和事件响 应;

5、StdAfx.h和StdAfx.cpp包含项目中常用到的MFC 头文件; Resource.h定义项目中所包含的资源标识符ID; MultiplicationDlg.rc用于定义项目中的资源。 17 8.2.3. 对话框组成及运行机制 资源通过标识符ID唯一标识, 一个项目中所有的资源标识符 都放在Resource.h文件中。 从MFC编程的角度来看,一个 对话框由两部分组成:对话框 资源和对话框类,这也是 Windows编程的一个主要特点 ,即资源和代码分离。 18 在MFC应用程序中有一个CWinApp派生类的 对象theApp(在Multiplication.cpp文件中定义) ,它是一

6、个全局变量,代表了应用程序运行实例 的主线程。 那么程序是如何运行的?对话框是如何显示 的?程序是如何响应按钮单击操作的? 在CWinApp派生类的所有成员函数中,只有 InitInstance()函数是派生类唯一需要重载的函数 。该函数负责应用程序的初始化工作 19 BOOL CMultiplicationApp:InitInstance() CMultiplicationDlg dlg; m_pMainWnd = int nResponse = dlg.DoModal(); if (nResponse = IDOK) else if (nResponse = IDCANCEL) retur

7、n FALSE; 定义了一个对话框对象dlg DoModal()函数负责对话框的显示和撤 销,包括载入对话框资源,调用 CDialog:OnInitDialog()函数初始化对 话框和将对话框显示在屏幕上。然后 启动一个消息循环,以响应用户的输 入。 20 BOOL CMultiplicationApp:InitInstance() CMultiplicationDlg dlg; m_pMainWnd = int nResponse = dlg.DoModal(); if (nResponse = IDOK) else if (nResponse = IDCANCEL) return FALS

8、E; 若用户在对话框内单击了ID为IDOK的按钮,则 CDialog:OnOK()函数将被调用。OnOK()函数调用 CDialog:EndDialog()函数关闭对话框。关闭对话框 后,DoModal()会返回值IDOK。 若用户在对话框内单击了ID为IDCANCEL的按钮, 则CDialog:OnCancel()函数被调用。该函数调用 CDialog:EndDialog()函数关闭对话框。关闭对话 框后,DoModal()会返回值IDCANCEL。 21 8.2.4 对话框的属性 对话框的属性都是由集成开发环境设置的 默认值,如果想重新设置对话框,只需在对话 框资源窗口中单击鼠标右键,在弹

9、出的快捷菜 单中选择Properties命令,打开对话框资源的 属性窗口 22 【例8-1续】在例8-1基础上,修改对话框的标题 。 修改对话框属性的操作步骤: (1)单击鼠标右键,选择Properties命令,打开 Dialog Properties对话框 23 (2)在General选项卡中的Caption编辑框中录 入“乘法计算器”。 (3)编译、链接、运行。 24 8.2.5. 静态文本控件 静态文本控件用来显示一个文本串。默认 情况下,所有静态文本控件的ID都为 IDC_STATIC,如果需要单独处理某个静态文 本控件,则需要为其重新设置一个唯一的ID值 。静态文本控件最长能够显示2

10、55个字符,可 以使用n实现换行。 25 【例8-1续】在8.2.4节中的例8-1续基础上,添 加“*”和“=”静态文本控件。 添加静态文本控件的操作步骤: (1)打开Multiplication工程,删除对话框上原有 的静态文本控件和两个按钮。 26 (2)单击控件工具栏中“静态文本控件”按钮,当 鼠标移动到对话框上后变为十字形,然后在对 话框中单击鼠标,生成一个静态文本控件。 27 (3)右键单击该静态文本控件,选择Properties 命令,在Caption编辑框文本改为“*” 。 28 (4)调整对话框大小。 (5)重复步骤(3)添加静态文本控件,将其 Caption编辑框文本改为“=

11、” 。 (6)编译、链接、运行。 29 8.2.6. 文本编辑框控件 当乘法计算器程序的提示信息设置完毕后,需要 录入计算数值,Visual C+提供了文本编辑框控件来 完成此项工作。 文本编辑框是用户从键盘输入、编辑文本的矩形 窗口,既可以是单行,也可以是多行,多行文本编辑 框的行号从零开始。在一个多行编辑框中,除了最后 一行外,每一行的结尾处都有一对回车换行符( “rn”),这对回车换行符是文本换行的标志。 30 【例8-1续】在8.2.5节中的例8-1续基础上,添 加“操作数”和“计算机结果文本编辑框控件。 添加文本编辑框控件的操作步骤: (1)单击控件工具栏中“文本编辑控件”按钮,当

12、鼠标移动到对话框上后变为十字形,然后在对 话框中单击鼠标,生成一个文本编辑控件。 31 (2)右键单击该文本编辑框控件,选择 Properties命令,将General选项卡中的ID修改 为IDC_OPERAND1,Styles选项卡中的Align text改为Right。 (3)参照步骤(1)和步骤(2),添加文本编 辑框,ID修改为IDC_ OPERAND2。 32 (4)参照步骤(1)和步骤(2),添加文本编 辑框,ID分别修改为IDC_RESULT。另外由于 计算结果不需要用户输入,所以将Styles选项 卡中的Read-only选中,编辑框变为灰色,不 能编辑。 (5)编译、链接、运

13、行。 33 8.2.7. 为控件定义关联变量 当用户在文本编辑框中输入数据时,程序如 何获得相应的内容呢?MFC允许为每个控件定 义关联变量,该关联变量可以与控件实现联动 或数据交换。 34 【例8-1续】在8.2.6节中的例8-1续基础上,为 三个文本编辑框分别添加一个关联变量。 为控件定义关联变量的操作步骤: (1)选择菜单View|ClassWizard命令,在弹出的 对话框中选择Member Variables选项卡。其中 Project列表框用于选择工程名,即Multiplication ;Class name列表框指定类名,选择 CMultiplicationDlg,其含义为添加的

14、关联变量作 为该类的成员变量;Control IDs中列出了 CMultiplicationDlg类中所有控件的ID。 35 工程名类名 控件列表 36 (2)在Control IDs处选择IDC_OPERAND1选项 ,单击Add Variable按钮,从中可设置控件 IDC_OPERAND1关联的变量名称、类别和数据 类型。在Member Variable name中输入 m_dOperand1,在Category中选择Value,在 Variable type中选择double,单击OK按钮。 37 大多数控件的Category列表框都有Value和 Control两个可选项。 Cont

15、rol所对应的Variable type是MFC为该控件 封装的控件类; Value所对应的Variable type各不相同,有 CString、int、UINT、long、BOOL、float、double 等类型。 为控件添加Control类型关联变量可以控制该控 件的行为,添加Value类型关联变量可以方便获取控 件数据。MFC允许为同一控件最多关联两个变量, 即为Value和Control各关联一个变量。 38 (3)用同样的方法为文本编辑框 IDC_OPERAND2和IDC_RESULT添加关联变量 m_dOperand2和m_dResult。 对于添加的关联变量,根据不同的数据类

16、型, 可以设置限制,如double类型可设置最大、最 小值;CString类型可设置最大字符数等 39 8.2.8 DDX/DDV机制 当关联变量添加完毕后,ClassWizard自动对源文件做 了如下修改。 (1)在MultiplicationDlg.h文件中添加了关联变量的声明。 class CMultiplicationDlg : public CDialog /AFX_DATA(CMultiplicationDlg) enum IDD = IDD_MULTIPLICATION_DIALOG ; doublem_dOperand1; doublem_dOperand2; doublem_dResult; /AFX_DATA ; 40 (2)在MultiplicationDlg.cpp文件中CMultiplicationDlg类 的构造函数中添加了初始化代码: CMultiplicationDlg:CMultiplicatio

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号