visual c++ 面向对象编程教程

59
高高高高高高高高高高高高高高高高 高高高 高高 Visual Visual C++ C++ 面面面面面面面面 面面面面面面面面

Upload: beatrice-berry

Post on 03-Jan-2016

87 views

Category:

Documents


0 download

DESCRIPTION

高等学校计算机专业课教育教材精选 王育坚 编著. Visual C++ 面向对象编程教程. 梅天灿 [email protected] 教学实验大楼六楼. 教学内容. 文档视图 (5). VC 开发环境 (1). C++ 语言基础 (2). 应用程序框架创建 (4). 对话框和标准控件 (6). 面向对象的程序设计 (3). MFC 原理 (7). 图形处理 (8). 第 1 章 Visual C++ 集成开发环境. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Visual C++ 面向对象编程教程

高等学校计算机专业课教育教材精选 王育坚 编著

Visual C++Visual C++面向对象编面向对象编

程教程程教程

Page 2: Visual C++ 面向对象编程教程

梅天灿 [email protected] 教学实验大楼六楼

Page 3: Visual C++ 面向对象编程教程

教学内容教学内容

VC 开发环境 (1)C++ 语言基础 (2)

面向对象的程序设计(3)

应用程序框架创建(4)

文档视图 (5)

对话框和标准控件(6)

MFC 原理 (7) 图形处理 (8)

Page 4: Visual C++ 面向对象编程教程
Page 5: Visual C++ 面向对象编程教程

Visual C++Visual C++ 是一个是一个可视化可视化软件开发工具。软件开发工具。 19931993年年 MicrosoftMicrosoft 公司推出公司推出 Visual C++ 1.0Visual C++ 1.0 ,新版本不,新版本不断 问 世 ,断 问 世 , 20012001 年 推 出年 推 出 Visual C++.NETVisual C++.NET (( 即即Visual C++ 7.0Visual C++ 7.0 ),),它只适用于它只适用于 Windows 2000 / Windows 2000 /

XP XP // NT 4.0 NT 4.0 开发环境。开发环境。 Visual C++Visual C++ 已成为专业程序员进行软件开发的首已成为专业程序员进行软件开发的首选工具。要使用 选工具。要使用 Visual C++Visual C++ 编程,首先要了解它编程,首先要了解它的的集成开发环境集成开发环境。。 Visual C++Visual C++ 集成开发环境中的集成开发环境中的程序开发工具很多,要真正掌握它们必须结合具体的程序开发工具很多,要真正掌握它们必须结合具体的编程内容。本章只简单介绍 编程内容。本章只简单介绍 Visual C++Visual C++ 集成开发集成开发环境的一般特点、界面风格和简单工具的使用,使我环境的一般特点、界面风格和简单工具的使用,使我们对们对 Visual C++Visual C++ 有一个感性的认识。有一个感性的认识。

Page 6: Visual C++ 面向对象编程教程

Visual C++Visual C++ 不仅仅是一个不仅仅是一个 C++C++ 编译编译器,而是一个基于器,而是一个基于 WindowsWindows 操作系统的可操作系统的可视 化 集 成 开 发 环 境视 化 集 成 开 发 环 境 IDEIDE (( Integrated Integrated Development EnvironmentDevelopment Environment )) 。。 Visual Visual C++C++ 由许多组件组成,包括编辑器、编译器、由许多组件组成,包括编辑器、编译器、调试器以及程序向导调试器以及程序向导 AppWizardAppWizard 、、 类向导类向导ClassWizardClassWizard 等开发工具。这些组件通过一等开发工具。这些组件通过一个名为个名为 Developer StudioDeveloper Studio 的组件集成为一的组件集成为一个和谐的开发环境。个和谐的开发环境。

1.1 Visual C++ 概述

Page 7: Visual C++ 面向对象编程教程

源程序用源程序用 C++C++ 语言编写,支持面向对象设计方法,使用功语言编写,支持面向对象设计方法,使用功能 强 大 的 微 软 基 础 类 库能 强 大 的 微 软 基 础 类 库 MFCMFC (( Microsoft Foundation Microsoft Foundation ClassClass ))。。

开发出来的软件稳定性好、可移植性强。开发出来的软件稳定性好、可移植性强。 可以编制各种各样可以编制各种各样 WindowsWindows 应用程序,包括应用程序,包括对话框程序对话框程序、、

文档 文档 / / 视图程序视图程序和组合界面程序。和组合界面程序。 作为作为 Visual StudioVisual Studio 可视化组件家族中最重要的一个成员,可视化组件家族中最重要的一个成员,

与其它可视化开发工具如与其它可视化开发工具如 Visual J++Visual J++ 、、 Visual BasicVisual Basic 及及Visual C#Visual C# 紧密地集成在一起,适用于特殊、复杂和综合软紧密地集成在一起,适用于特殊、复杂和综合软件项目的开发,乃至一个系统软件的设计。件项目的开发,乃至一个系统软件的设计。

联 机 帮 助 系 统联 机 帮 助 系 统 MSDNMSDN (( Microsoft Developer Network Microsoft Developer Network LibraryLibrary ))功能强大。它既能与集成开发环境有机地结合在功能强大。它既能与集成开发环境有机地结合在一起,使得用户在编程时随机查询需要的内容信息,又能脱一起,使得用户在编程时随机查询需要的内容信息,又能脱离集成开发环境而独立地运行。离集成开发环境而独立地运行。

1.1.1 Visual C++ 的特点

Page 8: Visual C++ 面向对象编程教程

除了除了 Visual C++Visual C++ ,,其它一些公司也推出了自己的其它一些公司也推出了自己的C++C++ 集成开发环境,如集成开发环境,如 BorlandBorland 的的 C++ BuilderC++ Builder 和和IBMIBM 的的 VisualAge C++VisualAge C++ 。。迄今为止,迄今为止, Visual C++Visual C++是功能最强和使用范围最广的软件开发工具。是功能最强和使用范围最广的软件开发工具。 比较 比较 Visual BasicVisual Basic 、、 C++ BuilderC++ Builder 和 和 Delphi Delphi 等编程工具,用等编程工具,用 Visual C++Visual C++ 编写编写 WindowsWindows 应用程应用程序最富于挑战性和艰巨性。而当熟练掌握序最富于挑战性和艰巨性。而当熟练掌握 Visual C+Visual C+++ 后,你会感受到作为一个后,你会感受到作为一个 Visual C++Visual C++ 程序员的无程序员的无比优越性。要想在使用比优越性。要想在使用 Visual C++Visual C++ 编程时做到游刃编程时做到游刃有余,必须解决四个主要困难:有余,必须解决四个主要困难:

C++C++ 语言的面向对象机制语言的面向对象机制 MFCMFC 类库功能的庞大类库功能的庞大 WindowsWindows 编程的复杂性编程的复杂性 向导所建立的应用程序框架的透明性向导所建立的应用程序框架的透明性

Page 9: Visual C++ 面向对象编程教程

1.1.2 Visual C++ 的安装 要求要求 CPUCPU 为为 PentiumPentium 以上系列,内存为以上系列,内存为 6464MBMB ,,所需硬盘空间约为所需硬盘空间约为 500500MM ,,操作系统为操作系统为 Windows Windows 95/98/200095/98/2000 或或 Windows NTWindows NT 。。

运行光盘根目录下的运行光盘根目录下的 Setup.exeSetup.exe 程序后,安装向程序后,安装向导程序将自动完成导程序将自动完成 Visual C++Visual C++ 的安装,用户只需的安装,用户只需要根据对话框提示输入具体的内容。如输入产品序要根据对话框提示输入具体的内容。如输入产品序列号,选择安装选项列号,选择安装选项、、安装路径和需要安装的组件安装路径和需要安装的组件等。等。

安装完毕后安装完毕后 ,, 如果要安装如果要安装 MSDNMSDN ,, 选择选择 Install Install MSDNMSDN ,,插入插入 Visual Studio 6.0Visual Studio 6.0 的的 MSDNMSDN 光盘光盘继续进行安装。用户最好随系统一起安装继续进行安装。用户最好随系统一起安装 MSDNMSDN 。。

Page 10: Visual C++ 面向对象编程教程

1.1.3 集成开发环境窗口 例例 1-1 1-1 利用利用 Visual C++ 6.0Visual C++ 6.0 创 建 一 个创 建 一 个WindowsWindows 应用程序应用程序 MysdiMysdi 。。 1. 1. 执行执行 FileFile||NewNew 菜单命令,出现菜单命令,出现 NewNew 对话框。对话框。在在 ProjectProject 页面窗口中选择页面窗口中选择 MFC AppWizard[exe]MFC AppWizard[exe]选项,在选项,在 Project NameProject Name 编辑框中输入项目名称编辑框中输入项目名称MysdiMysdi ,,在在 locationlocation 编辑框中输入保存项目的路径。编辑框中输入保存项目的路径。 2. 2. 在在 MFC AppWizard-Step1MFC AppWizard-Step1 对话框中设置对话框中设置应用程序的类型,本例创建一个单文档程序,选择应用程序的类型,本例创建一个单文档程序,选择Single documentSingle document 项,单击项,单击 FinishFinish 按钮,出现按钮,出现New Project InformationNew Project Information 对话框,单击对话框,单击 OKOK 按钮,按钮,将生成应用程序框架文件,并在项目工作区窗口打开将生成应用程序框架文件,并在项目工作区窗口打开生成的应用程序的项目。生成的应用程序的项目。

Page 11: Visual C++ 面向对象编程教程
Page 12: Visual C++ 面向对象编程教程

浮动窗口和停靠窗口 集成开发环境中的窗口有两种:集成开发环境中的窗口有两种:浮动窗口浮动窗口和和停靠停靠

窗口窗口。浮动窗口是一般的带边框的子窗口,用它。浮动窗口是一般的带边框的子窗口,用它显示源代码或图形。浮动窗口能以平铺方式或层显示源代码或图形。浮动窗口能以平铺方式或层叠方式显示在集成开发环境中,源代码编辑窗口叠方式显示在集成开发环境中,源代码编辑窗口就是一个浮动窗口。就是一个浮动窗口。

除了浮动窗口,集成开发环境中的所有其它窗口除了浮动窗口,集成开发环境中的所有其它窗口都 是 停 靠 窗 口 , 如 工 具 栏 、 菜 单都 是 停 靠 窗 口 , 如 工 具 栏 、 菜 单栏 、栏 、 WorkspaceWorkspace 窗 口窗 口 、、 OutputOutput 窗 口窗 口 和和DebuggerDebugger 调试器窗口(调试时自动打开。调试器窗口(调试时自动打开。

Page 13: Visual C++ 面向对象编程教程

停靠窗口停靠窗口可以固定在集成开发环境中的顶端、底端可以固定在集成开发环境中的顶端、底端或侧面,或者浮动在屏幕上任何位置。停靠窗口不或侧面,或者浮动在屏幕上任何位置。停靠窗口不论是浮动着的还是固定着的,总是出现在浮动窗口论是浮动着的还是固定着的,总是出现在浮动窗口的前面。这样就保证了当焦点从一个窗口移到另一的前面。这样就保证了当焦点从一个窗口移到另一个窗口时,停靠窗口总是可见的。个窗口时,停靠窗口总是可见的。

一个一个停靠窗口停靠窗口的固定和浮动形式可以相互转换。当的固定和浮动形式可以相互转换。当拖动一个固定窗口任何边缘未使用部分至屏幕中间拖动一个固定窗口任何边缘未使用部分至屏幕中间位置,该固定窗口就转换成浮动窗口。反之,当拖位置,该固定窗口就转换成浮动窗口。反之,当拖动一个浮动窗口的标题栏至开发环境主窗口的任何动一个浮动窗口的标题栏至开发环境主窗口的任何边缘上,该浮动窗口就转换成固定窗口。边缘上,该浮动窗口就转换成固定窗口。

单击窗口上的关闭按钮将关闭窗口,要想重新打开单击窗口上的关闭按钮将关闭窗口,要想重新打开窗口,在窗口,在 ViewView 主菜单中选择相应的菜单项。主菜单中选择相应的菜单项。

Page 14: Visual C++ 面向对象编程教程

1.1.4 MSDN 帮助系统Visual C++ Visual C++ 帮助系统帮助系统包括:包括: 有关有关 Visual C++ IDEVisual C++ IDE 使用说明的联机帮助文件;使用说明的联机帮助文件; MSDN LibraryMSDN Library (( Microsoft Developer Network Microsoft Developer Network

LibraryLibrary ))组件。组件。 MSDNMSDN 帮助系统是一个帮助系统是一个 HTMLHTML 格式的帮助文件,它格式的帮助文件,它所包含的内容非常丰富,容量超过所包含的内容非常丰富,容量超过 1.11.1GBGB ,,包含了有关包含了有关Visual StudioVisual Studio 的编程原理、方法和应用实例等内容。的编程原理、方法和应用实例等内容。使 用使 用 MSDNMSDN 时 可 以 通 过 访 问 微 软 网 站 “时 可 以 通 过 访 问 微 软 网 站 “http://www.microsoft.comhttp://www.microsoft.com””获取有关获取有关 MSDNMSDN 的最新的最新信息。信息。

DVDDVD 版和版和 CDCD 版,最新的版,最新的 MSDNMSDN 针对针对 VC7.0VC7.0 设计。设计。

Page 15: Visual C++ 面向对象编程教程

MSDNMSDN 的启动方法:的启动方法: 执行执行 HelpHelp||ContentsContents 命令或命令或 SearchSearch 工具栏按钮;工具栏按钮; 单击单击 F1F1 键快速获取相关内容的帮助,如在源文件编键快速获取相关内容的帮助,如在源文件编

辑器中用光标把一个需要查询的单词全选上,或单击辑器中用光标把一个需要查询的单词全选上,或单击一条出错提示信息,按一条出错提示信息,按 F1F1 键出现键出现 MSDNMSDN 的“索的“索引”页面;引”页面;

脱 离 于脱 离 于 Visual C++Visual C++ 集 成 开 发 环 境 而 独 立 运集 成 开 发 环 境 而 独 立 运行,行, MSDNMSDN 是是 Microsoft Visual StudioMicrosoft Visual Studio 的一个组的一个组件 ,从件 ,从 Windows“Windows“ 开始开始 || 程 序程 序 ”菜单 中 选择”菜单 中 选择Microsoft Developer NetworkMicrosoft Developer Network 菜单中的菜单中的 MSDN MSDN

LibraryLibrary 菜单项,就启动了菜单项,就启动了 MSDNMSDN 帮助系统。帮助系统。

Page 16: Visual C++ 面向对象编程教程

1.2 项目和项目工作区

编写一个应用程序首先要创建一个编写一个应用程序首先要创建一个项目项目(( ProjectProject ),),在创建项目的同时创在创建项目的同时创建了建了项目工作区项目工作区 WorkspaceWorkspace 。。项目工作项目工作区记录了一个项目的集成开发环境的设置,区记录了一个项目的集成开发环境的设置,如如 Developer StudioDeveloper Studio 最后一次关闭前各最后一次关闭前各窗口的状态。窗口的状态。

Page 17: Visual C++ 面向对象编程教程

1.2.1 项目

从软件工程的角度出发,每个程序的开发工作从软件工程的角度出发,每个程序的开发工作都是一个都是一个项目工程项目工程,它涉及到计算机和相关专业等,它涉及到计算机和相关专业等领域的知识及其应用。编程时还要使用代码生成、领域的知识及其应用。编程时还要使用代码生成、编辑、编译、链接、调试等一系列工具,并且编辑、编译、链接、调试等一系列工具,并且WindowWindow 可执行程序不是仅由一个源程序文件所可执行程序不是仅由一个源程序文件所生成的,而是由一些相互关联的源文件和资源文件生成的,而是由一些相互关联的源文件和资源文件共同生成的。共同生成的。

Page 18: Visual C++ 面向对象编程教程

在在 Visual C++Visual C++ IDEIDE 中,把实现程序设计功能的一组相中,把实现程序设计功能的一组相互关联的互关联的 C++C++ 源文件、资源文件以及支撑这些文件的源文件、资源文件以及支撑这些文件的类的集合称为一个类的集合称为一个项目项目。。 Visual C++ IDEVisual C++ IDE 以项目作为以项目作为程序开发的基本单位,项目用于管理组成应用程序的所程序开发的基本单位,项目用于管理组成应用程序的所有元素,并由它生成应用程序。有元素,并由它生成应用程序。

项 目 用项 目 用 项 目 文 件项 目 文 件 DSPDSP (( Developer Studio Developer Studio ProjectProject ))来描述,文件名后缀为来描述,文件名后缀为 ..dspdsp 。。项目文件保存项目文件保存了项目中所用到的源代码文件和资源文件的信息,如文了项目中所用到的源代码文件和资源文件的信息,如文件名和路径。同时,项目文件还保存了项目的编译设置件名和路径。同时,项目文件还保存了项目的编译设置等 信 息 , 如 调 试 版 (等 信 息 , 如 调 试 版 ( DebugDebug )) 或 发 布 版或 发 布 版(( ReleaseRelease )。)。

一个项目至少包含一个项目文件一个项目至少包含一个项目文件。根据项目类型的不同,。根据项目类型的不同,一个项目包含的源文件、资源文件和其它文件也不同。一个项目包含的源文件、资源文件和其它文件也不同。

Page 19: Visual C++ 面向对象编程教程

Visual C++Visual C++ IDEIDE 以项目工作区的方式来组织应用程序的以项目工作区的方式来组织应用程序的项 目 , 项 目 工 作区用 工 作区文 件项 目 , 项 目 工 作区用 工 作区文 件 DSWDSW (( Developer Developer Studio WorkspaceStudio Workspace ))来描述,文件名后缀为来描述,文件名后缀为 ..dswdsw 。。

工作区文件保存了应用程序集成开发环境的项目设置信息,工作区文件保存了应用程序集成开发环境的项目设置信息,它将一个它将一个 DSPDSP 项目文件与具体的项目文件与具体的 Developer StudioDeveloper Studio 结结合在一起,合在一起,在在 Visusal C++Visusal C++ IDEIDE 中一般以打开工作区文件中一般以打开工作区文件DSWDSW 的方式来打开指定的项目。的方式来打开指定的项目。

创建项目后,可通过项目工作区创建项目后,可通过项目工作区WorkspaceWorkspace 窗口来查看窗口来查看项 目 中 的 组 成 元 素 。项 目 中 的 组 成 元 素 。 WorkspaceWorkspace 窗 口 由窗 口 由ClassViewClassView 、、 ResourceViewResourceView 和和 FileViewFileView 三个页面组成。三个页面组成。这些页面按照一定的逻辑关系将一个项目分成几个部分,这些页面按照一定的逻辑关系将一个项目分成几个部分,以树形结构显示项目所创建的类、资源和文件。以树形结构显示项目所创建的类、资源和文件。

1.2.2 项目工作区

Page 20: Visual C++ 面向对象编程教程

1. 1. ClassViewClassView 类视图类视图

2. 2. ResourceViewResourceView 资源视图资源视图

3. 3. FileViewFileView 文件视图文件视图

可通过可通过 FileFile菜单和菜单和 ProjectProject菜单中的有关命菜单中的有关命令添加令添加 C++C++ 源文件、资源文件和其它文件到项目源文件、资源文件和其它文件到项目中,在工作区窗口中将显示被添加的文件与其它文中,在工作区窗口中将显示被添加的文件与其它文件之间的关系。若要删除项目中的某个文件,选中件之间的关系。若要删除项目中的某个文件,选中要删除的文件,然后按要删除的文件,然后按 DeleteDelete 键即可。键即可。 (( 注意:注意:没有把文件从硬盘中删除!没有把文件从硬盘中删除! ))

Page 21: Visual C++ 面向对象编程教程

一般使用默认的项目设置生成应用程序的执一般使用默认的项目设置生成应用程序的执行代码,也可以改变当前项目的设置。行代码,也可以改变当前项目的设置。 Visusal Visusal

C++ IDEC++ IDE 提供了相关的命令来 设置项 目 , 如提供了相关的命令来 设置项 目 , 如ProjectProject 菜单中的菜单中的 SettingsSettings 命令、命令、 BuildBuild 菜单中菜单中的的 ConfigurationsConfigurations 命 令 和命 令 和 ToolTool 菜 单 中 的菜 单 中 的CustomizeCustomize 、、 OptionsOptions命令等。命令等。

1.2.1 项目设置

Page 22: Visual C++ 面向对象编程教程

执行执行 ProjectProject||SettingsSettings 菜单命令打开 菜单命令打开 ProjectProject Settings Settings 项目设置对话框:项目设置对话框:

在在 DebugDebug 页面可设置程序执行时的命令行参数;页面可设置程序执行时的命令行参数; 在在 C/C++C/C++ 页面可优化编译器设置和添加预处理页面可优化编译器设置和添加预处理

器宏;器宏; 在在 LinkLink页面可设置链接器选项。页面可设置链接器选项。

执行执行 BuildBuild||ConfigurationsConfigurations 菜单命令可菜单命令可添加或删除项目的版本设置。添加或删除项目的版本设置。

Page 23: Visual C++ 面向对象编程教程
Page 24: Visual C++ 面向对象编程教程

有多种方法可以改变 有多种方法可以改变 Developer Studio Developer Studio 环境,环境,使它适应我们个人的工作方式。执行使它适应我们个人的工作方式。执行 ToolTool||

CustomizeCustomize菜单命令,在菜单命令,在 ToolbarsToolbars页面可设页面可设置工具栏选项,在置工具栏选项,在 CommandsCommands页面设置菜单栏页面设置菜单栏选项。执行选项。执行 ToolTool||OptionsOptions菜单命令可进行编辑菜单命令可进行编辑器等选项的设置,如设置编辑窗口的字体和颜色。器等选项的设置,如设置编辑窗口的字体和颜色。

要想了解每一项的具体含义,可先单击该项,然要想了解每一项的具体含义,可先单击该项,然后按后按 F1F1键即可得到需要的联机帮助信息。键即可得到需要的联机帮助信息。

Page 25: Visual C++ 面向对象编程教程

1.3 编辑器

程序代码由操作码和数据组成,除了一般程序代码由操作码和数据组成,除了一般数据,一个数据,一个 WindowsWindows 应用程序大量使用被称应用程序大量使用被称作为作为资源资源的数据。的数据。 Visual C++Visual C++ 作为可视化的作为可视化的程序开发工具,提供了功能强大的源代码编辑程序开发工具,提供了功能强大的源代码编辑器和各种类型的资源编辑器。器和各种类型的资源编辑器。

源代码编辑器源代码编辑器 资源编辑器资源编辑器:菜单编辑器、工具栏编辑器、 对:菜单编辑器、工具栏编辑器、 对

话框编辑器、图标编辑器、光标编辑器、位图话框编辑器、图标编辑器、光标编辑器、位图编辑器、快捷键编辑器、串表编辑器编辑器、快捷键编辑器、串表编辑器

Page 26: Visual C++ 面向对象编程教程

编辑文件的类型编辑文件的类型:: C/C++C/C++ 头文件头文件 C++C++ 源文件源文件 TextText 文本文件文本文件 HTMLHTML 文件文件

1.3.1 源代码编辑器

方便编程的特色功能: 在编辑 C++ 源程序时,在编辑窗口根据 C++ 语法对不同的

语句元素以不同的颜色显示,并进行合适长度的自动缩进。 自动提示功能。当输入源程序代码时,编辑器会显示对应类

的成员函数和变量;当输入函数调用语句时,编辑器会自动提示函数的参数个数和类型;当将光标指向变量、函数或类时,编辑器将给出对应的变量类型、函数声明或类的信息。

自动补全单词功能。在输入标识符时右击鼠标,从弹出菜单中选择 Complete Word 项可自动补全单词的其余部分。

Page 27: Visual C++ 面向对象编程教程

更方便地使用更方便地使用 Complete WordComplete Word 功能:功能:

在输入较长的标识符时,为了更方便地使用自动补全在输入较长的标识符时,为了更方便地使用自动补全单词功能,可为该功能的命令添加一个快捷键。执行菜单命单词功能,可为该功能的命令添加一个快捷键。执行菜单命令令 Tools|Customize|KeyboardTools|Customize|Keyboard ,, 在在 CategoryCategory 栏选栏选择择 All CommandsAll Commands 项 , 在项 , 在 EditorEditor 栏 选 择栏 选 择 TextText

项,项, CommandsCommands 框中找到命令项框中找到命令项 CompleteWordCompleteWord ,,将将光标置于光标置于 Press new shortcut Press new shortcut 框中,按下需要的快捷键框中,按下需要的快捷键组合,如组合,如 Alt+SpaceAlt+Space ,,最后单击最后单击 AssignAssign 按钮。设置快捷按钮。设置快捷键后,在输入关键字、标识符和变量时,按下 键后,在输入关键字、标识符和变量时,按下 Alt+Space Alt+Space

就可以自动补全单词的其余部分。就可以自动补全单词的其余部分。

Page 28: Visual C++ 面向对象编程教程

1.3.2 资源编辑器 在在 WindowsWindows 环境下,资源是独立于程序源代环境下,资源是独立于程序源代码的,加上不同资源的不同特点,因此码的,加上不同资源的不同特点,因此 Visual Visual

C++C++ 提供了不同的提供了不同的可视化资源编辑器可视化资源编辑器和和资源属性资源属性对话框对话框。使用资源编辑器,可以创建新的资源或编。使用资源编辑器,可以创建新的资源或编辑已有的资源。当新建或打开一个资源时,系统将辑已有的资源。当新建或打开一个资源时,系统将自动打开相应的资源编辑器。当新建一个资源时,自动打开相应的资源编辑器。当新建一个资源时,资源管理器自动给资源分配一个资源标识号资源管理器自动给资源分配一个资源标识号 IDID 。。

Page 29: Visual C++ 面向对象编程教程

图象编辑器由绘图区、图象编辑器由绘图区、 GraphicsGraphics 绘图工具箱和绘图工具箱和ColorsColors 调色板组 成 。 当 图 象 编 辑 器打开调色板组 成 。 当 图 象 编 辑 器打开后 ,后 , Developer StudioDeveloper Studio 菜单栏上将出现菜单栏上将出现ImageImage 主菜单。主菜单。 GraphicsGraphics 工具栏中有画笔、画工具栏中有画笔、画刷等常用绘图工具,并可输入文本。刷等常用绘图工具,并可输入文本。 ColorsColors 工工具栏供用户选择绘图时所用的颜色。具栏供用户选择绘图时所用的颜色。

图象编辑器主要用于绘制位图、图标、光标和工图象编辑器主要用于绘制位图、图标、光标和工具 条 , 在具 条 , 在 WorkspaceWorkspace 项 目 工 作 区 中 的项 目 工 作 区 中 的ResourceViewResourceView 页面双击这些资源时就会打开页面双击这些资源时就会打开对应的图象编辑器,例如,当双击一个对应的图象编辑器,例如,当双击一个 IconIcon 图图标资源时将打开标资源时将打开图标编辑器图标编辑器。。

1. 图象编辑器

Page 30: Visual C++ 面向对象编程教程
Page 31: Visual C++ 面向对象编程教程

工 具 栏工 具 栏 一 般表示常用菜单命令的快速执行 方一 般表示常用菜单命令的快速执行 方式,式, WindowsWindows 应用程序用一个形象的位图来作应用程序用一个形象的位图来作为工具栏按钮的外观。为工具栏按钮的外观。

工具栏编辑器实际上也是一个图象编辑器,主要工具栏编辑器实际上也是一个图象编辑器,主要用 于 创 建 新 的 工 具栏按钮。 在 项 目 工 作区用 于 创 建 新 的 工 具栏按钮。 在 项 目 工 作区ResourceViewResourceView 页面打开页面打开 ToolbarToolbar 文件夹,双文件夹,双击其中的工具栏资源,出现工具栏编辑器和击其中的工具栏资源,出现工具栏编辑器和GraphicsGraphics 工具栏、工具栏、 ColorsColors 工具栏,单击最后工具栏,单击最后的空白项可添加一个新的按钮。鼠标按下并拖动的空白项可添加一个新的按钮。鼠标按下并拖动某个工具栏按钮,可将该按钮删除。某个工具栏按钮,可将该按钮删除。

2. 工具栏编辑器

Page 32: Visual C++ 面向对象编程教程
Page 33: Visual C++ 面向对象编程教程

快捷键快捷键是利用键盘输入方式代替执行应用程序的菜单或工具是利用键盘输入方式代替执行应用程序的菜单或工具栏命令。快捷键一般是两个键的组合,如栏命令。快捷键一般是两个键的组合,如 Alt+SAlt+S 。。利用快利用快捷键编辑器可编辑、添加和删除应用程序项目中的快捷键。捷键编辑器可编辑、添加和删除应用程序项目中的快捷键。

在项目工作区在项目工作区 ResourceViewResourceView 页面打开页面打开 AcceleratorAccelerator 文件文件夹,双击其中的快捷键资源出现快捷键编辑器。夹,双击其中的快捷键资源出现快捷键编辑器。

双击快捷键列表项,打开双击快捷键列表项,打开 Accel PropertiesAccel Properties 快捷键属性对快捷键属性对话框话框编辑编辑快捷键。也可单击鼠标右键,在快键菜单中选择快捷键。也可单击鼠标右键,在快键菜单中选择PropertiesProperties命令,进入快捷键属性对话框。命令,进入快捷键属性对话框。

要要添加添加快捷键,双击编辑器中快捷键列表底部的空白行,在快捷键,双击编辑器中快捷键列表底部的空白行,在随后出现的快捷键属性对话框中选择需要添加快捷键的菜单随后出现的快捷键属性对话框中选择需要添加快捷键的菜单项标识项标识 IDID ,,然后设置快捷键和组合键。然后设置快捷键和组合键。

要要删除删除一个快捷键,单击该快捷键,然后按一个快捷键,单击该快捷键,然后按 DeleteDelete键。键。

3. 快捷键编辑器

Page 34: Visual C++ 面向对象编程教程
Page 35: Visual C++ 面向对象编程教程

WindowsWindows 应用程序运行后,当鼠标指向菜单项和应用程序运行后,当鼠标指向菜单项和工具栏按钮时,在底部状态栏将显示所指项的有工具栏按钮时,在底部状态栏将显示所指项的有关提示信息,关提示信息,串表串表就是这样一种资源字符串。就是这样一种资源字符串。

利用字符串编辑器可进行串表的编辑、添加和删利用字符串编辑器可进行串表的编辑、添加和删除等操作。在项目工作区除等操作。在项目工作区 ResourceViewResourceView 页面打页面打开开 String TableString Table 文件夹,双击串表资源出现串表文件夹,双击串表资源出现串表编辑器。串表编辑器的使用方法与快捷键的使用编辑器。串表编辑器的使用方法与快捷键的使用方法类似。方法类似。

4. 串表编辑器

Page 36: Visual C++ 面向对象编程教程
Page 37: Visual C++ 面向对象编程教程

在在 WindowsWindows 中,中,版本信息版本信息也是作为资源处理。版本也是作为资源处理。版本信息包括版本号、产品的操作系统、语言和公司名称信息包括版本号、产品的操作系统、语言和公司名称等,版本信息编辑器用于编辑上述信息。等,版本信息编辑器用于编辑上述信息。

每个应用程序有一个版本信息资源,其标识每个应用程序有一个版本信息资源,其标识 IDID 为为VS_VERSION_INFOVS_VERSION_INFO 。。编程时版本信息可帮助用户编程时版本信息可帮助用户判断当前使用系统的版本号,避免用旧版本替换新的判断当前使用系统的版本号,避免用旧版本替换新的版 本 。 调 用 函 数版 本 。 调 用 函 数 GetFileVersionInfo()GetFileVersionInfo() 和和VerQueryValue()VerQueryValue() 可获取版本信息。可获取版本信息。

在项目工作区在项目工作区 ResourceViewResourceView 页面打开页面打开 VersionVersion 文文件夹,双击其中的件夹,双击其中的 VS_VERSION_INFOVS_VERSION_INFO 出现版本信出现版本信息编辑器。双击版本信息资源中某一项可以编辑相应息编辑器。双击版本信息资源中某一项可以编辑相应的版本信息。的版本信息。

5. 版本信息编辑器

Page 38: Visual C++ 面向对象编程教程
Page 39: Visual C++ 面向对象编程教程

例例 1-21-2 对例对例 1-11-1 中的应用程序中的应用程序 MysdiMysdi 使用资源使用资源编辑器编辑图标、工具栏、快捷键、串表和版本信息。编辑器编辑图标、工具栏、快捷键、串表和版本信息。

1.执行 File|Open Workspace命令,找到 Mysdi 文件夹,双击Mysdi.dsw 文件就打开了应用程序项目。可采取另一种简单方法打开项目,即通过 File菜单中的 Recent Workspace子菜单找到以前建立的应用程序项目 Mysdi 。 2.将应用程序的大小图标改为“ SDI” 。 在 Workspace

项 目 工 作区 ResourceView 页面打开 Icon 文 件夹,双击IDR_MAINFRAME ,在右边的编辑区显示程序的图标资源。利用 Graphics 工具栏中的橡皮擦去原来的图象,再利用文本工具“ A”输入字符串“ SDI” ,并设置合适的字体和大小。注意 16×16 和 32×32两种大小规格的图标都要进行修改。

Page 40: Visual C++ 面向对象编程教程

3 .在工具栏上添加一个“ +” 按钮。在项目工作区ResourceView 页 面 打 开 Toolbar 文 件 夹 , 双 击IDR_MAINFRAME 出现程序的工具栏资源。单击最后的空白项,利用 Graphics 中的画线工具画一个“ +”。 4 .将“文 件”菜单 项“打开 (O)...”改为“打开(R)...” ,并将其快捷键改为“ Ctrl+R” 。 在 项 目 工 作区ResourceView 页 面 打 开 Menu 文 件 夹 , 双 击IDR_MAINFRAME 出现程序的菜单栏资源。双击菜单项“打开 (O)…”弹出 Properties属性对话框,将其 Caption改为“打开 (&R)...\tCtrl+R” 。在项目工作区 ResourceView 页面打开Accelerator 文件夹,双击 IDR_MAINFRAME 出现程序的快捷键资源。双击快捷键 ID_FILE_OPEN打开 Properties 属性对话框,将 Key输入栏的字符改为“ R” 。

Page 41: Visual C++ 面向对象编程教程

5.将程序运行后底部状态栏的显示信息改为“这是一个单文档应用程序”。在项目工作区 ResourceView 页面打开String Table 文件夹,双击 String Table 出现程序的串表资源。双击 ID 为 AFX_IDS_IDLEMESSAGE 的串表资源 项打开Properties属性对话框,将其 Caption改为“这是一个单文档应用程序”。 6.修改版本信息,将版本号改为 1.1 ,并修改“关于…”对话框中相应的显示信息。在项目工作区 ResourceView页面打开 Version 文件夹,双击 VS_VERSION_INFO 出现程序的版本信息。双击 CompanyName 项,输入姓名。同样将FileVersion 和 ProductVersion 项的内容改为“ 1.1” 。 在项目工 作区 ResourceView 页面打开 Dialog 文 件夹,双击IDD_ABOUTBOX 出现“关于 Mysdi” 对话框。鼠标右击静态文本控件“ Mysdi 1.0 版”弹出浮动式菜单,选择 Properties项弹出属性对话框,将其 Caption改为“Mysdi 1.1 版”。

Page 42: Visual C++ 面向对象编程教程

打开 Build菜单,执行 Build Mysdi.exe命令即可编译、链接并生成应用程序 Mysdi 。打开 Build 菜单,执行 Execute Mysdi.exe命令运行应用程序,出现如图所示结果。

Page 43: Visual C++ 面向对象编程教程

1.4 菜单栏和工具栏 菜单栏菜单栏和和工具栏工具栏是是 Visual C++ IDEVisual C++ IDE 的重要组的重要组成部分,工具栏一般与菜单项有对应关系。成部分,工具栏一般与菜单项有对应关系。 Visual Visual

C++ IDEC++ IDE 包括包括 100100 多个不同的菜单项和几乎同样多个不同的菜单项和几乎同样数目的工具栏按钮,而且它们中的大多数还会引导数目的工具栏按钮,而且它们中的大多数还会引导出复杂的对话框和具有大量选项的属性页。随着今出复杂的对话框和具有大量选项的属性页。随着今后 学习内 容 的深入, 我 们将会 比 较全面 地 掌 握后 学习内 容 的深入, 我 们将会 比 较全面 地 掌 握Visual C++ IDEVisual C++ IDE 中的菜单栏和工具栏的使用。中的菜单栏和工具栏的使用。

Page 44: Visual C++ 面向对象编程教程

Visual C++ IDEVisual C++ IDE 中 的 菜 单 栏 由中 的 菜 单 栏 由FileFile 、、 EditEdit 、、 ViewView 、、 InsertInsert 、、 ProjectProject 、、 Build(Build(

Debug)Debug) 、、 ToolsTools 、、 WindowWindow 和和 HelpHelp 等等 99 个主菜个主菜单组成,每个主菜单又由多个菜单项和子菜单组成。单组成,每个主菜单又由多个菜单项和子菜单组成。菜单项提供的功能几乎可以完成所有的菜单项提供的功能几乎可以完成所有的 Developer Developer

StudioStudio 功能。功能。 除了主菜单,在除了主菜单,在 Visual C++ IDEVisual C++ IDE 中窗口的不同地中窗口的不同地

方单击鼠标右键还可弹出相应的快捷菜单。方单击鼠标右键还可弹出相应的快捷菜单。

1.4.1 菜单栏

Page 45: Visual C++ 面向对象编程教程

File 菜单 FileFile 主菜单包括一些与文件有关的操作命令,主菜单包括一些与文件有关的操作命令,如新建、打开、关闭、保存和显示最近的项目、文如新建、打开、关闭、保存和显示最近的项目、文件、工作区等。件、工作区等。 例如,在编程过程中,若要创建新的头文件或例如,在编程过程中,若要创建新的头文件或实现源文件并添加到项目中,打开实现源文件并添加到项目中,打开 FileFile 菜单,选菜单,选择择 NewNew 菜单项,在菜单项,在 NewNew 对话框的选择对话框的选择 FileFile 页面,页面,选择选择 C/C++ Header FileC/C++ Header File 或或 C++ Source FileC++ Source File

项,选择项,选择 Add to ProjectAdd to Project ,,输入文件名。输入文件名。

Page 46: Visual C++ 面向对象编程教程

Edit 菜单

EditEdit 主菜单主要包括一些与文件编辑有关的主菜单主要包括一些与文件编辑有关的操作命令,如复制、粘贴、剪切、查找、替换、设操作命令,如复制、粘贴、剪切、查找、替换、设置、删除和查看断点等。置、删除和查看断点等。 例如,例如, EditEdit 的查找功能很丰富,可利用的查找功能很丰富,可利用 FindFind

菜单命令在当前打开的文件中进行查找,还可利用菜单命令在当前打开的文件中进行查找,还可利用Find in FilesFind in Files 菜单命令在指定的多个文件中进行菜单命令在指定的多个文件中进行查找。查找。

Go to Go to 将光标移到指定位置处将光标移到指定位置处Bookmark Bookmark 在光标当前位置定义一个书签在光标当前位置定义一个书签

Page 47: Visual C++ 面向对象编程教程

View 菜单

ViewView 主菜单中的菜单命令项主要用于改变窗主菜单中的菜单命令项主要用于改变窗口的显示方式和口的显示方式和激活指定 的窗口激活指定 的窗口, 如激活, 如激活ClassWizardClassWizard 类向导、类向导、 WorkspaceWorkspace 工作区窗口、工作区窗口、OutputOutput 输出窗口和输出窗口和 Debug WindowsDebug Windows 调试窗口。调试窗口。 例如,当进入程序调试状态时,通过例如,当进入程序调试状态时,通过 Debug Debug

WindowsWindows子菜单可以激活几个不同的调试窗口。子菜单可以激活几个不同的调试窗口。

Page 48: Visual C++ 面向对象编程教程

Insert 菜单

InsertInsert 主菜单主要包括一些与添加有关的操主菜单主要包括一些与添加有关的操作命令,如添加新类、资源和源代码文件等。作命令,如添加新类、资源和源代码文件等。 例如 , 编 程 时经常通 过例如 , 编 程 时经常通 过 InsertInsert 菜单 的菜单 的ResourceResource 命令,向项目添加一个指定类型的资命令,向项目添加一个指定类型的资源。源。

Page 49: Visual C++ 面向对象编程教程

Project 菜单

ProjectProject 主菜单主要包括一些与项目管理有关主菜单主要包括一些与项目管理有关的操作命令,如向项目添加文件、设置当前项目、的操作命令,如向项目添加文件、设置当前项目、改变编译器和链接器选项等。改变编译器和链接器选项等。 例如,若要将一个现有的例如,若要将一个现有的 C++C++ 源文件或资源源文件或资源文 件添加到 项 目 中 , 可执行文 件添加到 项 目 中 , 可执行 Project|Add to Project|Add to Project|FilesProject|Files 命 令 , 在命 令 , 在 Insert Files Into Insert Files Into ProjectProject 对话框中,选择要插入的文件。对话框中,选择要插入的文件。

Page 50: Visual C++ 面向对象编程教程

Build 菜单

BuildBuild 主菜单主要包括一些与建立可执行程序主菜单主要包括一些与建立可执行程序有关的操作命令,如编译、链接和调试程序等。有关的操作命令,如编译、链接和调试程序等。 例如,例如, BuildBuild 菜单命令项是对最近修改过的文菜单命令项是对最近修改过的文件进行编译和链接,而件进行编译和链接,而 Rebuild AllRebuild All 菜单命令项是菜单命令项是对所有文件全部重新进行编译和链接。对所有文件全部重新进行编译和链接。 CleanClean 用用于清除编译链接时在项目运行目录中产生的临时于清除编译链接时在项目运行目录中产生的临时文件和输出文件。文件和输出文件。 注意,当启动调试器后,注意,当启动调试器后, DebugDebug 主菜单将代主菜单将代替替 BuildBuild 主菜单出现在菜单栏中。主菜单出现在菜单栏中。

Page 51: Visual C++ 面向对象编程教程

Tools 菜单

ToolsTools 主菜单中的菜单命令项主要用于启动主菜单中的菜单命令项主要用于启动Visual StudioVisual Studio 实用工具、定制实用工具、定制 Visual C++Visual C++ 集成集成开发环境界面,如利用开发环境界面,如利用 CustomizeCustomize 菜单命令设置菜单命令设置某个 主菜单 中 的菜单 项 (该主菜单 要 与某个 主菜单 中 的菜单 项 (该主菜单 要 与CustomizeCustomize 对话框同时打开)、显示或关闭工具对话框同时打开)、显示或关闭工具栏和修改命令的快捷键。栏和修改命令的快捷键。

Page 52: Visual C++ 面向对象编程教程

Window 菜单

WindowWindow 主菜单主要包括一些与窗口显示有关主菜单主要包括一些与窗口显示有关的操作命令,如切换窗口、的操作命令,如切换窗口、 SplitSplit 分离窗口及设置分离窗口及设置停靠窗口。停靠窗口。

Page 53: Visual C++ 面向对象编程教程

为了提高操作效率, 为了提高操作效率, Visual C++Visual C++ 集成开发环集成开发环境为菜单命令项提供了对应的境为菜单命令项提供了对应的快捷键快捷键,但需要用,但需要用户熟练记忆才能使用。户熟练记忆才能使用。 WindowsWindows 应用程序一般应用程序一般都提供了都提供了工具栏工具栏,弥补了快捷键的不足之处。,弥补了快捷键的不足之处。

工具栏是由一些形象化的位图按钮组成,工具栏工具栏是由一些形象化的位图按钮组成,工具栏按钮一般都对应于菜单命令项,用于方便、快捷按钮一般都对应于菜单命令项,用于方便、快捷地使用地使用 Visual C++Visual C++ 集成开发环境的常用功能。集成开发环境的常用功能。

1.4.2 工具栏

Page 54: Visual C++ 面向对象编程教程

Visual C++ IDEVisual C++ IDE 的工具栏以停靠窗口的形式出的工具栏以停靠窗口的形式出现,其位置可以通过鼠标拖曳的方法来改变,并现,其位置可以通过鼠标拖曳的方法来改变,并可以根据需要进行显示或隐藏的切换。一般的方可以根据需要进行显示或隐藏的切换。一般的方法 是执行法 是执行 ToolsTools||CustomizeCustomize 菜单命令, 选择菜单命令, 选择ToolbarsToolbars 标签页,根据需要进行选择。标签页,根据需要进行选择。

也可以在菜单栏或工具栏的空白处单击鼠标右键,也可以在菜单栏或工具栏的空白处单击鼠标右键,然后在一个弹出式菜单中选择要显示或隐藏的工然后在一个弹出式菜单中选择要显示或隐藏的工具栏。具栏。

如果要恢复工具栏或菜单栏到系统原来的默认状如果要恢复工具栏或菜单栏到系统原来的默认状态,在态,在 CustomizeCustomize 对话框中单击对话框中单击 Reset AllReset All 或或Reset All MenusReset All Menus按钮。按钮。

Page 55: Visual C++ 面向对象编程教程
Page 56: Visual C++ 面向对象编程教程

StandardStandard 工具栏中主要包括一些与文件和编工具栏中主要包括一些与文件和编辑 有关的常用 操 作命令,每个按钮的 功 能 与辑 有关的常用 操 作命令,每个按钮的 功 能 与FileFile 、、 EditEdit 和和 ViewView 等主菜单中某个菜单项对应。等主菜单中某个菜单项对应。下图给出了下图给出了 StandardStandard 工具栏的一般形式。工具栏的一般形式。

1.4.3 Standard 工具栏

Page 57: Visual C++ 面向对象编程教程

Build MiniBarBuild MiniBar 工具栏中主要包括了项目的选工具栏中主要包括了项目的选择、编译、链接和调试等操作命令,每个按钮的功择、编译、链接和调试等操作命令,每个按钮的功能主要与能主要与 BuildBuild 和和 DebugDebug 主菜单中某个菜单项对主菜单中某个菜单项对应。应。

1.4.4 Build MiniBar 工具栏

CompileBuild Execute

Insert Breakpoint

GoStop Build

Page 58: Visual C++ 面向对象编程教程

在默认设置情况下,在默认设置情况下, Visual C++ IDEVisual C++ IDE 中将显中将显示示 WizardBarWizardBar 工具栏,它位于工具栏,它位于 StandardStandard 工具栏工具栏下面。下面。 WizardBarWizardBar 是对是对 Visual C++Visual C++ 中特色功能中特色功能的快捷操作,它提供了对某个类的某个成员的快速的快捷操作,它提供了对某个类的某个成员的快速访问,能显示、跟踪和操作当前的成员。访问,能显示、跟踪和操作当前的成员。

1.4.5 WizardBar 工具栏

Page 59: Visual C++ 面向对象编程教程

学学 VCVC 的好习惯的好习惯 11 、充分利用、充分利用 MSDN MSDN 22 、充分利用网络资源、充分利用网络资源

httphttp :: //www.codeguru.com//www.codeguru.com ,,httphttp :: //www.codeproject.com//www.codeproject.com ,,httphttp :: //www.programmersheaven.com //www.programmersheaven.com http: //www.vckbase.comhttp: //www.vckbase.com

33 、写好注释、写好注释 44 、代码风格规范、代码风格规范 55 、跟踪调试、跟踪调试 66 、自我测试、自我测试 77 、交流、交流