1、第第5章章 VC的开发环境介绍的开发环境介绍5.1 集成工作环境集成工作环境5.2 工程项目生成工程项目生成实验实验4 熟悉开发环境和建立工程项目熟悉开发环境和建立工程项目 本章介绍本章介绍 Visual C+Visual C+的类库的类库 MFC MFC 的基础知识。的基础知识。MFC MFC 是是 Visual Visual C+C+的主体部分,本章的内容将为深入学习的主体部分,本章的内容将为深入学习 Visual C+Visual C+奠定基础。奠定基础。5.1 集成工作环境集成工作环境 Visual C+Visual C+软件包含了许多独立的组件,例如编辑器、编译器、软件包含了许多独立
2、的组件,例如编辑器、编译器、连接器、实用程序生成器、调试器等,以及各种各样为开发连接器、实用程序生成器、调试器等,以及各种各样为开发WindowsWindows环环境下的境下的C/C+C/C+程序而设计的工具,其中最重要的是一个名为程序而设计的工具,其中最重要的是一个名为Developer Developer StudioStudio的集成开发环境。的集成开发环境。菜菜 单单工具栏工具栏 编辑子窗口编辑子窗口 工作区窗口工作区窗口 输出子窗口输出子窗口 5.1.1 菜单和工具栏菜单和工具栏1File菜单菜单 FileFile菜单中不仅可以完成新文件的建立、打开、关闭、保存工菜单中不仅可以完成新
3、文件的建立、打开、关闭、保存工作,还可以完成项目的创立、打开、保存、关闭以及对应参数的设作,还可以完成项目的创立、打开、保存、关闭以及对应参数的设置和定义打印等工作。置和定义打印等工作。New Open、Open Workspace Save、Save Workspace、Save As、Save All Close、Close Workspace Page Setup Print Recent File Recent Workspaces ExitNew 命令命令 对话框对话框 操作:在键盘上同时按下操作:在键盘上同时按下Alt+F键或者鼠标单键或者鼠标单击菜单栏的击菜单栏的File选项,进
4、入文件菜单。选项,进入文件菜单。2Edit菜单菜单 Visual Studio 6.0的的Edit菜单中添加了几个十分有用的命令,如菜单中添加了几个十分有用的命令,如List Members、Type Info、Parameter Info和和Complete Word。这。这些命令使些命令使Visual C+6.0的程序设计人员编写程序更加轻松,代码输入的程序设计人员编写程序更加轻松,代码输入一次正确率更高。一次正确率更高。Undo:取消最近一次的误操作。:取消最近一次的误操作。Redo:取消:取消Undo命令操作。命令操作。Cut:删除选定的文本,同时写入剪贴板并覆盖剪贴板原有的内容。:删
5、除选定的文本,同时写入剪贴板并覆盖剪贴板原有的内容。Copy:将选定的文本块复制到剪贴板上。:将选定的文本块复制到剪贴板上。Paste:将剪贴板上的内容插到光标处。:将剪贴板上的内容插到光标处。Delete:删除选定内容。与:删除选定内容。与Cut命令不同,命令不同,Cut命令将选定的内容拷命令将选定的内容拷贝到剪贴板中。贝到剪贴板中。Select All:选择当前活动窗口中的所有内容。:选择当前活动窗口中的所有内容。Find:查找显示。:查找显示。Find Files:在多个文件中查找指定的字符串。:在多个文件中查找指定的字符串。Replace:替换指定的文本串。:替换指定的文本串。Go T
6、o:将光标移动到指定位置。:将光标移动到指定位置。Edit下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下Alt+E键或者用鼠标键或者用鼠标单击菜单栏的单击菜单栏的Edit选项,进入编辑菜单选项,进入编辑菜单 Find 命令命令 对话框对话框 Go To 命令命令 对话框对话框 Bookmarks:设置:设置/取消书签。可以通过设置取消书签。可以通过设置/取消书签使工作更有取消书签使工作更有条理,效率更高。条理,效率更高。Advanced:编辑和修改的高级命令,如增量式搜索、在选定内容:编辑和修改的高级命令,如增量式搜索、在选定内容中用空格代替制表键等。中用空格代替制表键等。Br
7、eakpoints:设置:设置/取消断点。取消断点。List Members:弹出一个列表框,框中显示了类的成员函数和成员:弹出一个列表框,框中显示了类的成员函数和成员变量列表。变量列表。Type Info:显示了标识符的完整声明。:显示了标识符的完整声明。Parameter Info:显示:显示Parameter Info工具提示条。提示条中的内工具提示条。提示条中的内容包括完整的函数原型以及函数的参数。对于重载函数,系统能够根容包括完整的函数原型以及函数的参数。对于重载函数,系统能够根据用户的输入自动判断用户的意图,显示用户需要的某一种重载函数据用户的输入自动判断用户的意图,显示用户需要的
8、某一种重载函数原型。原型。Complete Word:能够为用户完成输入函数或变量的过程。根据用:能够为用户完成输入函数或变量的过程。根据用户当前的输入内容,系统判断如果存在多于一种的选择,系统将列出户当前的输入内容,系统判断如果存在多于一种的选择,系统将列出各种可能的输入,供用户选择。各种可能的输入,供用户选择。List Members 列表框列表框 3View菜单菜单 Class Wizard:启动:启动MFC Class Wizard对话框。对话框。MFC Class Wizard对话框可以帮助用户创建对话框可以帮助用户创建Windows消息和命令处理函数,创建消息和命令处理函数,创建和
9、管理类,创建类成员变量,同时也可以帮助用户重载和管理类,创建类成员变量,同时也可以帮助用户重载MFC类中的虚类中的虚拟函数。拟函数。Resource Symbols:打开资源符号管理器。资源管理器窗口中列:打开资源符号管理器。资源管理器窗口中列出了项目中所有资源的出了项目中所有资源的ID号,用户可以在这个窗口中查找和浏览资源号,用户可以在这个窗口中查找和浏览资源符号。符号。Resource Includes:打开:打开Resource Includes对话框。在这个对对话框。在这个对话框中,用户可以编辑资源符号文件名和预处理指令。话框中,用户可以编辑资源符号文件名和预处理指令。Full Scr
10、een:以全屏的方式显示当前活动窗口。单击屏幕左上方的:以全屏的方式显示当前活动窗口。单击屏幕左上方的全屏标志或按全屏标志或按Esc键可以返回原视图。键可以返回原视图。Workspace:控制显示工程工作区。:控制显示工程工作区。Output:控制显示工作信息栏。:控制显示工作信息栏。Debug Windows:此菜单项只有在调试运行时才能被激活。:此菜单项只有在调试运行时才能被激活。Debug Windows级联菜单中各项的含义为级联菜单中各项的含义为Watch 查看变量窗口、查看变量窗口、Call stack访问堆栈、访问堆栈、Memory内存、内存、Variables变量、变量、Regi
11、sters寄存器、寄存器、Dissemble使用汇编语言细化描述程序。使用汇编语言细化描述程序。Properties:弹出一个:弹出一个Properties属性对话框。通过它,可以查看、属性对话框。通过它,可以查看、编辑任何一个对象的属性。编辑任何一个对象的属性。View下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下Alt+V键或者用鼠标键或者用鼠标单击菜单栏的单击菜单栏的View选项,进入视图菜单选项,进入视图菜单 4Insert菜单菜单 New Class:打开:打开New Class对话框,通过该对话框可以向工程中对话框,通过该对话框可以向工程中加入新的类。加入新的类。R
12、esource:启动:启动“Insert Resource”对话框,用户可以创建新的对话框,用户可以创建新的资源、从磁盘文件中导入资源到当前资源文件以及添加新定制的资源资源、从磁盘文件中导入资源到当前资源文件以及添加新定制的资源到当前的资源文件。到当前的资源文件。Resource Copy:用于复制资源文件。:用于复制资源文件。File As Text:将选定的文件插入到当前文件中。:将选定的文件插入到当前文件中。New ATL Object:启动:启动ALT Object Wizard对话框,在对话框中用对话框,在对话框中用户可以将户可以将ALT对象添加到项目中。对象添加到项目中。Inser
13、t下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下Alt+I键或者用鼠标键或者用鼠标单击菜单栏的单击菜单栏的Insert选项,进入插入菜单选项,进入插入菜单 New Class对话框对话框 Insert Resource对话框对话框 5Project菜单菜单 Select Active Project:当用户在一个工作区中打开多个项目时,:当用户在一个工作区中打开多个项目时,通过该菜单提供的级联菜单,在已打开的多个项目中选定当前工作区通过该菜单提供的级联菜单,在已打开的多个项目中选定当前工作区中的活动项目。中的活动项目。Add to project:用于向工程中加入新的文件:用于
14、向工程中加入新的文件,包括各种源文件、包括各种源文件、数据库文件、文本文件等,也可以向工程中加入工程,以及数据库文件、文本文件等,也可以向工程中加入工程,以及ActiveX控件和控件和VC开发平台的通用控制。开发平台的通用控制。Source Control:是源文件管理菜单,通过级联菜单提供了一系:是源文件管理菜单,通过级联菜单提供了一系列的操作,使用户管理个人和组的项目更加容易。通过源代码控制系列的操作,使用户管理个人和组的项目更加容易。通过源代码控制系统,实现对项目文件源代码更安全的管理。统,实现对项目文件源代码更安全的管理。Dependencies:编辑项目之间的依赖关系。:编辑项目之间
15、的依赖关系。Settings:弹出:弹出Project Settings对话框,用户根据需要修改项目对话框,用户根据需要修改项目的调试、链接等环境配置。的调试、链接等环境配置。Export Makefile:以:以“Mak”文件格式输出建立的项目。文件格式输出建立的项目。Insert Project into Workspace:在工作区中加入已有的项目。:在工作区中加入已有的项目。当用户需要同时调试多个项目时,可以通过这个命令在一个工作区中当用户需要同时调试多个项目时,可以通过这个命令在一个工作区中加入多个项目。加入多个项目。Project 下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键
16、盘上同时按下ALT+P键或者用鼠键或者用鼠标单击菜单栏标单击菜单栏Project选项,进入项目菜单选项,进入项目菜单 6Build菜单菜单 Build的下拉菜单命令提供一整套强大的编译调试工具,可以将多的下拉菜单命令提供一整套强大的编译调试工具,可以将多个源文件和目标文件组合成最后执行的应用程序。个源文件和目标文件组合成最后执行的应用程序。Compile:编译当前源程序编辑窗口中的源文件,其结果将输出到输:编译当前源程序编辑窗口中的源文件,其结果将输出到输出窗口中。出窗口中。Build:编译并链接,:编译并链接,Build命令观察项目中所有文件,只对刚刚修改命令观察项目中所有文件,只对刚刚修改
17、过的文件重新编译、链接。过的文件重新编译、链接。Rebuild All:文件不论是否修改过,全部重新编译、链接。:文件不论是否修改过,全部重新编译、链接。Batch Build:一次建立多个项目。:一次建立多个项目。Clean:清除中间文件。:清除中间文件。Start Debug:开始调试,包括:开始调试,包括Go、Step Into、Run to Cursor、Attach to Process四个子菜单。四个子菜单。Go:从当前执行到下一个断点。:从当前执行到下一个断点。Step Into:单步执行。:单步执行。Run to Cursor:执行到当前光标位置。:执行到当前光标位置。Atta
18、ch to Process:选择该项可以对一个在:选择该项可以对一个在Visual Studio外启动的外启动的程序进行调试。程序进行调试。Debugger Remote Connection:远程调试连接设置。:远程调试连接设置。Execute:执行程序。:执行程序。Set Active Configuration:选择活动项目,:选择活动项目,in32 Release 发行版发行版或或Win32 Debug调试版。调试版。Configuration:编辑项目设置。:编辑项目设置。Build 下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下Alt+B键或者用鼠标键或者用鼠标单击
19、菜单栏的单击菜单栏的Build选项,进入项目菜单选项,进入项目菜单 7 Tools菜单菜单 Source Browse:如果用户建立了浏览信息数据库,则弹出:如果用户建立了浏览信息数据库,则弹出Browse对话框,用户可以查询程序中所有符号的相关信息;否则对话框,用户可以查询程序中所有符号的相关信息;否则,系系统将弹出对话框向用户询问是否需要建立浏览信息数据库。统将弹出对话框向用户询问是否需要建立浏览信息数据库。Close Source Browse File:用于关闭:用于关闭Browse信息文件。信息文件。Register Control:将编写的:将编写的OLE控件向操作系统注册,以便能
20、够控件向操作系统注册,以便能够在在Win32中使用中使用OLE控件。控件。Error lookup:根据用户输入的值,返回一个系统错误信息。:根据用户输入的值,返回一个系统错误信息。ActiveX Control Test Container:提供一个容器对:提供一个容器对ActiveX控件控件进行测试。在这个容器中,我们可以改变控件的属性,调用控件的方进行测试。在这个容器中,我们可以改变控件的属性,调用控件的方法法,激活控件的事件。激活控件的事件。MFC Tracer:弹出:弹出MFC Tracer Options对话框。在对话框中,用对话框。在对话框中,用户可以设置在哪种情况下,提供户可以
21、设置在哪种情况下,提供Tracer输出服务。当应用程序执行时,输出服务。当应用程序执行时,启动启动MFC Tracer,它将激活各种级别的调试信息,这些信息由,它将激活各种级别的调试信息,这些信息由MFC发发送到输出窗口。送到输出窗口。Customize:用户定制菜单栏、工具条和键盘加速键。:用户定制菜单栏、工具条和键盘加速键。Options:启动:启动Options对话框,对对话框,对Visual C+6.0的编辑、编译、的编辑、编译、调试、运行、工作路径等环境参数进行设置。用户可以根据实际情况,调试、运行、工作路径等环境参数进行设置。用户可以根据实际情况,合理地配置这些参数以提高工作效率。
22、合理地配置这些参数以提高工作效率。Macro:用于打开:用于打开Macro对话框,在该对话框内可以对宏进行编辑。对话框,在该对话框内可以对宏进行编辑。Tools 下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下Alt+T键或者用鼠标键或者用鼠标单击菜单栏的单击菜单栏的Tools选项选项,进入项目菜单,进入项目菜单 Window菜单菜单 New Window:在编辑区为当前活动窗口复制一个新的窗口,新窗:在编辑区为当前活动窗口复制一个新的窗口,新窗口的内容跟原来窗口的内容一样,不同的是窗口标题上加了口的内容跟原来窗口的内容一样,不同的是窗口标题上加了“”。Split:将工作区分割,
23、可以同时观察多个窗口。:将工作区分割,可以同时观察多个窗口。Docking View:将窗口锁定在工作台面上,并占据固定位置,其:将窗口锁定在工作台面上,并占据固定位置,其他窗口将不能再覆盖该窗口。他窗口将不能再覆盖该窗口。Close:将关闭编辑区的当前窗口。:将关闭编辑区的当前窗口。Close All:关闭工作区的所有窗口。:关闭工作区的所有窗口。Next:将显示编辑窗口队列中的下一个窗口。:将显示编辑窗口队列中的下一个窗口。Previous:将显示编辑窗口队列中的上一个窗口。:将显示编辑窗口队列中的上一个窗口。Cascade:将层叠排列窗口。:将层叠排列窗口。Tile Horizontal
24、ly:将水平排列窗口。:将水平排列窗口。Tile Vertically:将垂直排列窗口。:将垂直排列窗口。Windows:将打开窗口管理对话框,该对话框可以管理所有编辑:将打开窗口管理对话框,该对话框可以管理所有编辑窗口。窗口。Window 下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下Alt+W键或者用鼠标键或者用鼠标单击菜单栏的单击菜单栏的Window选项选项,进入项目菜单,进入项目菜单 Help菜单菜单 icrosoft Visual Studio 6.0提供了丰富的在线帮助信息。提供了丰富的在线帮助信息。Help菜单和菜单和MSDN Library Visual Stu
25、dio 6.0相结合,以多种方式提供相结合,以多种方式提供MSDN在线帮助服务。在线帮助服务。Contents:将当前窗口设置成工程工作区的:将当前窗口设置成工程工作区的InfoView页面上,如页面上,如果工程工作区未显示在工作台界面上,该命令将使工程工作区窗口显果工程工作区未显示在工作台界面上,该命令将使工程工作区窗口显示在界面左侧。这样用户可以在示在界面左侧。这样用户可以在InfoView页面上查找自己所需的主题。页面上查找自己所需的主题。Search:将启动:将启动Search对话框,在对话框中可以输入待查主题词对话框,在对话框中可以输入待查主题词的关键字,也可从列表中选择。此后选择的
26、关键字,也可从列表中选择。此后选择List Topics键,在最下面的键,在最下面的框中列出所有相关的主题。选择框中列出所有相关的主题。选择Display键,将出现键,将出现Info View窗口,窗口,其中显示帮助信息。其中显示帮助信息。Keyboard Map:将展示所有菜单命令的快捷键一览表。:将展示所有菜单命令的快捷键一览表。Tip of the Day:将显示:将显示“日积月累日积月累”提示框。提示框。Technical Support:可用来检索微软的技术支持信息。:可用来检索微软的技术支持信息。Microsoft on the Web:将自动打开:将自动打开IE,用以游览,用以游
27、览Internet网上网上Microsoft站点下的帮助信息。站点下的帮助信息。Help 下拉菜单下拉菜单 操作:在键盘上同时按下操作:在键盘上同时按下lt+H键或者用鼠标键或者用鼠标单击菜单栏的单击菜单栏的Help选项选项,进入项目菜单,进入项目菜单 5.1.2 Developer Studio窗口窗口1文档窗口文档窗口 文档窗口是一般的带边框子的窗口,其中含有源代码文档或图形文档。文档窗口是一般的带边框子的窗口,其中含有源代码文档或图形文档。窗口子菜单中列出了在屏幕是以平铺方式还是以层叠方式显示文档窗口的命窗口子菜单中列出了在屏幕是以平铺方式还是以层叠方式显示文档窗口的命令。所有其他的令。
28、所有其他的Developer Studio窗口,包括工具栏和菜单栏,都是停靠窗口,包括工具栏和菜单栏,都是停靠式窗口。开发环境有两个主要的停靠窗口式窗口。开发环境有两个主要的停靠窗口Workspace(工作区)窗口(工作区)窗口和和Outspace(输出)窗口,另外还有一个(输出)窗口,另外还有一个Debugger(调试器)停靠窗口,(调试器)停靠窗口,只在调试过程中显示。只在调试过程中显示。停靠窗口可以固定在停靠窗口可以固定在Developer Studio用户区的顶端、底端或侧面,用户区的顶端、底端或侧面,或者浮动在屏幕上任何地方。停靠窗口,不论是浮动着的还是固定着的,总或者浮动在屏幕上任
29、何地方。停靠窗口,不论是浮动着的还是固定着的,总是出现在文档窗口的上面。这样,就保证了当焦点从一个窗口移到另一个时,是出现在文档窗口的上面。这样,就保证了当焦点从一个窗口移到另一个时,浮动的工具栏一直都是可见的。但这也意味着,文档窗口偶尔会看起来像消浮动的工具栏一直都是可见的。但这也意味着,文档窗口偶尔会看起来像消失了似的。例如,如果你正在文本编辑器中编辑源代码,此时打开一个占据失了似的。例如,如果你正在文本编辑器中编辑源代码,此时打开一个占据整个整个Developer Studio用户区的停靠窗口,源代码文档就会消失,它隐藏用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口之下。解决方法是
30、要么关了覆盖的窗口,要么把它拖到不挡眼的地在新窗口之下。解决方法是要么关了覆盖的窗口,要么把它拖到不挡眼的地方去。方去。2停靠窗口停靠窗口5.2 工程项目生成工程项目生成1启动启动Visual C+6.0 Visual C+6.0 2单击单击FileFile菜单,选择菜单,选择NewNew选项选项 切换到切换到ProjectProject表页,在表页,在Project Project 表页的项目类型列表框中,单击表页的项目类型列表框中,单击要创建的项目类型。要创建的项目类型。3在在Project NameProject Name输入框中,输输入框中,输入要建立的项目文件名,在入要建立的项目文件
31、名,在LocationLocation输入框中,输入用户输入框中,输入用户希望存放项目的子目录名,在希望存放项目的子目录名,在默认情况下,系统会在安装默认情况下,系统会在安装Microsoft Visual Studio 6.0Microsoft Visual Studio 6.0时自动建立的时自动建立的Microsoft Microsoft Visual StudioVisual Studio目录下的目录下的MyProjectsMyProjects子目录中自动建立子目录中自动建立与项目名称一致的目录,用于与项目名称一致的目录,用于存放项目文件。存放项目文件。4单击单击OKOK按钮后依次输入各
32、类型项目需要的按钮后依次输入各类型项目需要的参数,最后单击参数,最后单击FinishFinish按钮显示前几步所按钮显示前几步所选择的全部设置,此时单击选择的全部设置,此时单击OKOK按钮系统在按钮系统在指定的目录下自动生成工程项目。指定的目录下自动生成工程项目。5n 实验目的和要求实验目的和要求 1掌握掌握Visual C+6.0的启动和退出方法。的启动和退出方法。2掌握用应用程序向导创建一个控制台应用项目的方法。掌握用应用程序向导创建一个控制台应用项目的方法。3掌握源代码文件的新建、打开、保存和关闭等基本操作。掌握源代码文件的新建、打开、保存和关闭等基本操作。4掌握掌握VisualC+项目
33、的编译、连接和执行。项目的编译、连接和执行。5掌握代码简单语法错误修正和调试的一般过程。掌握代码简单语法错误修正和调试的一般过程。n 实验内容实验内容 1.上机熟悉上机熟悉Visual C+6.0的集成工作环境。的集成工作环境。2.上机建立一个工程项目上机建立一个工程项目 3编辑、编译、运行如下编辑、编译、运行如下C+程序。程序。n实验步骤实验步骤 1在在VC开发环境下建立一个项目。开发环境下建立一个项目。2编辑源代码。编辑源代码。3调试运行,并得到运行结果。调试运行,并得到运行结果。实验实验4 熟悉开发环境和建立工程项目熟悉开发环境和建立工程项目n 参考代码参考代码#include#incl
34、ude class employee protected:char name10;char street20;char city10;char pov10;char post7;int no;public:employee(char,char,char,char,char,int);void changename(char str);void display();employee:employee(char n,char s,char c,char p1,char p2,int num)strcpy(name,n);strcpy(street,s);strcpy(city,c);strcpy(
35、prov,p1);strcpy(post,p2);no=num;void employee:changename(char n)strcpy(name,n);void employee:display()cout”输出记录输出记录”noendl;cout”姓名:姓名:”nameendl;cout”街道地址:街道地址:”streetendl;cout”市:市:”cityendl;cout”省:省:”provendl;cout 邮政编码:邮政编码:”postendl;void main()employee obj1(“王华王华”,”胜利东街胜利东街66号号”,”潍坊市潍坊市”,”山东省山东省”,”420066”,1);obj1.display();输出记录输出记录1 姓名:王华姓名:王华 街道地址:胜利东街街道地址:胜利东街66号号 市:潍坊市市:潍坊市 省:山东省省:山东省邮政编码:邮政编码:420066运行结果运行结果