VisualC集成环境的使用.ppt

上传人:壹****1 文档编号:568645517 上传时间:2024-07-25 格式:PPT 页数:80 大小:301.01KB
返回 下载 相关 举报
VisualC集成环境的使用.ppt_第1页
第1页 / 共80页
VisualC集成环境的使用.ppt_第2页
第2页 / 共80页
VisualC集成环境的使用.ppt_第3页
第3页 / 共80页
VisualC集成环境的使用.ppt_第4页
第4页 / 共80页
VisualC集成环境的使用.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《VisualC集成环境的使用.ppt》由会员分享,可在线阅读,更多相关《VisualC集成环境的使用.ppt(80页珍藏版)》请在金锄头文库上搜索。

1、9.1 Visual C+集成开发环境集成开发环境 9.2 菜单功能介绍菜单功能介绍 9.3 工具栏的使用工具栏的使用 9.4 资源与标识符资源与标识符 9.5 应用程序的建立应用程序的建立 第9章VisualC+集成环境的使用返回主目录9.1 Visual C+集成开发环境集成开发环境 9.1.1 集成开发环境的启动及其主窗口简介集成开发环境的启动及其主窗口简介VisualC+6.0提供了良好的可视化编程环境,集项目建立、打开、浏览、编辑、保存、编译、连接和调试等功能于一体。VisualC+6.0可用于Windows95及WindowsNT环境。将VisualC+6.0正确安装到Window

2、s系统之后,选择开始程序MicrosoftVisualStudio6.0MicrosoftVisualC+6.0,即可启动,进入集成开发环境(DeveloperStudio),如图9.1所示。图9.1VisualC+6.0的DeveloperStudio图9.1为集成开发环境的主窗口,包括标题栏、菜单栏、项目工作区窗口(缺省时处于泊坞状态)、正文窗口、输出窗口(缺省时处于泊坞状态)和状态条。标题栏用于显示应用程序名和打开的文件名;菜单栏完成DeveloperStudio中的所有功能;工具栏对应于某些菜单或命令的功能,简化用户操作;项目工作区(Workspace)窗口用于组织文件、项目和项目配置

3、。当读进一个项目后,该窗口的下端会出现3个标签:类视图(ClassView)、资源视图(ResourceView)及文件视图(FileView),如图9.2(a)(c)所示;正文窗口用于各种程序文件、资源文件、文档文件以及帮助信息等显示或编辑,如图9.3所示;输出窗口用于显示项目建立过程中所产生的各种信息;状态栏给出当前操作或所选择的命令的提示信息。图9.2项目工作区(Workspace)窗口(a)类视图;(b)资源视图;(c)文件视图图9.3正文窗口 9.1.2 正文窗口及其操作正文窗口及其操作用户可以同时打开多个正文窗口,每个窗口都是标准的Window窗口,可通过系统菜单以及右上角的最大化

4、、最小化、复原、关闭、移动及改变尺寸等进行一般的操作。除此之外,还有以下两种方法可切换窗口。(1)若需要切换的窗口已打开且可见,用鼠标单击该窗口的任何部分,或在Window菜单下选择最下面的文件列表中的相应文件即可将其激活。(2)若需要切换的窗口已打开但不可见,可以使用正文窗口系统菜单下的Next命令(或加速键Ctrl+F6)依次循环地切换正文窗口,也可以使用Window菜单下的Windows命令,将出现如图9.4所示的对话框。图9.4Windows对话框在Selectwindow下面的列表框中列出当前打开的正文窗口,可让用户选择。右边的Activate按钮用来激活选中的窗口。CloseWin

5、dow(s)按钮用来关闭选定的窗口。当选定的窗口是程序文件或用户可以编辑的其它文档文件时,也可用Save按钮来保存文件。 9.1.3 Workspace窗口及其操作窗口及其操作在图9.2中单击不同标签就会显示相应的页面。例如单击FileView图标标签,会出现图9.2(c)所示的页面。页面中的内容是以树型结构显示的。通过单击某结点前的“+”或双击该结点,就可以打开该结点,显示其内容。如果双击结点为最底层的对象,则打开相应的编辑器,出现一个编辑窗口。例如,在FileView中双击文本文件,会打开源程序编辑器;在ResourceView中双击一个资源时,会打开资源编辑器。对于缺省时的泊坞状态的Wo

6、rkspace窗口(图9.2)或其它泊坞窗口,用鼠标拖动它们的边框,可以使它们变为普通的窗口,如图9.5所示。图9.5普通窗口时的Workspace窗口的外观可以通过按Shift+Esc键或单击工具栏中的Workspace按钮隐藏Workspace窗口,也可以用鼠标右击Workspace窗口的页面,然后从快捷菜单中选中Hide命令;或是用鼠标右击任意工具栏的边框,弹出快捷菜单,然后选取ProjectWorkspace菜单项。Workspace窗 口 被 隐 藏 后 , 可 以 单 击 工 具 栏 中 的Workspace按钮,或者从View菜单下选取Workspace菜单项或按Alt+0加速键

7、将其显示出来;也可以用鼠标右击任意工具栏的边框,弹出快捷菜单,然后选取ProjectWorkspace菜单项。9.2 菜单功能介绍菜单功能介绍VisualC+6.0的菜单栏包括File、Edit、View、Insert、Project、Build、Tools、Window、Help等菜单,使用方法与Windows常规操作相同。选中某个菜单后,会弹出下拉式子菜单。子菜单中某些常用的菜单右边常常对应着某个加速键,按下加速键将直接执行该菜单项操作;菜单项后面带有“”,表示当选择该菜单项后将弹出一个对话框,供用户作进一步的设置;菜单项后面黑色的三角箭头,表示该菜单项还带有下一级的子菜单。在窗口的不同位

8、置单击鼠标右键,可以弹出快捷菜单,该菜单中的选项通常都是与当前位置关系密切,需要频繁执行的操作命令。 9.2.1 File菜单菜单File菜单中的命令主要完成文件的建立、保存、打开、关闭以及打印等工作。菜单命令项及其加速键和功能如表9.1所示。表9.1File菜单命令的加速键及功能菜单命令加速键功能说明NewCtrl+N创建一个新文件、工程OpenCtrl+O打开一个已存在的文件Close关闭当前被打开的文件OpenWorkspace打开一个已存在的WorkspaceSaveWorkspace保存当前被打开的WorkspaceCloseWorkspace关闭当前被打开的WorkspaceSaC

9、trl+S保存当前文件SaveAs以新的文件名保存当前文件SaveAll保存所有打开的文件PageSetup设置文件的页面PrintCtrl+P打印文件的全部或选定的部分RecentFiles最近的文件列表RecentWorkspace最近的Workspace列表Exit退出集成开发环境 9.2.2 Edit菜单菜单Edit菜单中的命令用来使用户便捷地编辑文件,如进行删除、复制等操作。菜单命令项及其加速键和功能如表9.2所示。菜单命令加速键 功能说明UndoCtrl+Z撤消上一次编辑操作RedoCtrl+Y恢复被取消的编辑操作CutCtrl+X将选定的文本剪切到剪贴板中CopyCtrl+C将选

10、定的文本复制到剪贴板中Paste Ctrl+V将剪切板中的内容粘贴到光标处DeleteDel删除选定的对象或光标处的字符SelectAllCtrl+A 一次性选定窗口中的全部内容FindCtrl+F查找指定的字符串FindinFiles在多个文件中查找指定的字符串ReplaceCtrl+H替换指定的字符串GoToCtrl+G光标自动转移到指定位置BookmarksCtrl+F2 给文本加书签AdvancedIncrementalSearchCtrl+I开始向前搜索AdvancedFormatSelectionAlt+F8 对选中对象进行快速缩排AdvancedTabifySelection在选

11、中对象中用跳格代替空格AdvancedUntabifySelection在选中对象中用空格代替跳格AdvancedMakSelectionUppercaseCtrl+Shift+U把选中部分改成大写续表(2)AdvancedMakeSelectionLowercaseCtrl+U把选中部分改成小写Advanceda-bViewWhitespaceCtrl+Shift+8显示或隐藏空格点BreakpointsAlt+F9编辑程序中的断点ListMembersCtrl+Alt+T列出全部关键字TypeInfoCtrl+T显示变量、函数或方法的语法ParameterInfoCtrl+Shift+Sp

12、ace显示函数的参数CompleteWordCtrl+Space给出相关关键字的全称续表(3) 9.2.3 View菜单菜单View菜单中的命令主要用来改变窗口的显示方式,激活调试时所用的各个窗口。菜单命令项及其加速键和功能如表9.3所示。表9.3View菜单命令的加速键及功能菜单命令 加速键功能说明ClassWizardCtrl+W编辑应用程序中的类ResourceSymbols浏览和编辑资源文件中的符号ResourceIncludes编辑修改资源文件名及预处理指令FullScreen切换窗口的全屏幕方式和正常方式WorkspaceAlt+0激活Workspace窗口OutputAlt+2激

13、活Output窗口DebugWindowsWatchAlt+3激活Watch窗口DebugWindowsCallStackAlt+7激活CallStack窗口DebugWindowsMemoryAlt+6激活Memory窗口DebugWindowsVariablesAlt+4激活Variables窗口DebugWindowsRegistersAlt+5激活Registers窗口DebugWindowsDisassemblyAlt+8激活Disassembly窗口Refresh更新选择域PropertiesAlt+Enter编辑当前被选中对象的属性 9.2.4 Insert菜单菜单Insert菜

14、单中的命令主要用于项目、文件及资源的创建和添加。菜单命令项及其加速键和功能如表9.4所示。表表9.4 Inset菜单命令的加速键及功能菜单命令的加速键及功能菜单命令加速键功能说明NewClass创建新类并加入到项目中NewForm创建新表并加入到项目中ResourceCtrl+R创建各种新资源ResourceCopy对选定的资源进行拷贝FileAsText在当前源文件中插入一个文件NewALTObject在项目中增加一个ALT对象 9.2.5 Project菜单菜单Project菜单中的命令主要用来对项目进行文件的添加工作。菜单命令项及其加速键和功能如表9.5所示。表9.5Project菜单命

15、令的加速键及功能菜单命令加速键功能说明SetActiveProject激活项目AddToprojectNew在项目上增加新文件AddToprojectNewFolder在项目上增加新文件夹AddToprojectFiles在项目上插入已存在的文件AddToprojectDataConnection在当前项目上增加数据连接AddToprojectComponentsandControls在当前项目上插入库中的组件Dependencies编辑项目组件Settings Alt+F7编辑项目编译及调试的设置ExportMakefile以Makefile形式输出可编译项目InsertProjectint

16、oWorkspace将项目插入Workspace窗口中 9.2.6 Build菜单菜单Build菜单中的命令主要用来进行应用程序的编译、连接、调试和运行等。菜单命令项及其加速键和功能如表9.6所示。表表9.6 Build命令的加速键及功能命令的加速键及功能菜单命令 加速键 功能说明CompileAppmodul.cppCtrl+F7 编译C或C+源代码文件BuildEx00.exeF7编译和连接项目RebuildAll编译和连接项目及资源BatchBuild一次编译和连接多个项目Clean删除中间及输出文件StartDebugGoF5开始或继续调试程序StartDebugStepIntoF11

17、单步运行调试StartDebugRuntoCursorCtrl+F10运行程序到光标所在行StartDebugAttachtoProcess连接到正在运行的进程DebuggerRemoteConnection编辑远程调试连接设置ExecuteEx00.exeCtrl+F5运行程序SetActiveConfiguration选择激活的项目及配置Configurations编辑项目的配置Profile设置Profile选项,显示Profile数据 9.2.7 Tools菜单菜单Tools菜单中的命令主要用于选择或定制集成开发环境中的一些实用工具,来改变窗口的显示方式,激活调试所用的各个窗口。菜单命

18、令项及其加速键和功能如表9.7所示。表表9.7 Tools菜单命令的加速键及功能菜单命令的加速键及功能菜单命令加速键功能说明SourceBrowser Alt+F12在选定的对象或当前文本中查询CloseSourceBrowserFile关闭信息库VisualComponentManager激活VisualComponentManagerRegisterControl激活RegisterControlErrorLookup激活ErrorLookupActiveXControlTestContainer激活ActiveXControlTestContainerOLE/COMObjectViewe

19、r 激活OLE/COMObjectViewerSpy+激活Spy+MFCTracer激活MFCTracerCustomize定制Tool菜单和工具栏菜单命令加速键功能说明Options改变集成开发环境的各项设置Macro创建和编辑宏RecordQuickMacro记录宏PlayQuickMacro运行宏续表(续表(2) 9.2.8 Window菜单菜单Window菜单中的命令主要用来排列集成开发环境中的各个窗口、打开或关闭一个窗口、使窗口分离或重组等操作,改变窗口的显示方式,激活调试所用的各个窗口。菜单命令项及其加速键和功能如表9.8所示。表9.8Window菜单命令的加速键及功菜单命令加速键

20、功能说明NewWindow为当前文件打开一个新的窗口Split分割窗口DockingViewAlt+F6启用或关闭DockingView模式Close关闭当前打开的窗口CloseAll关闭所有打开的窗口Next激活下一个窗口Previous激活上一个窗口Cascade多个窗口重叠出现在显示区域中TileHorizontally把窗口按水平方向排列TileVertically把窗口按垂直方向排列Windows管理当前打开的窗口 9.2.9 Help菜菜同大多数的Windws软件一样,VisualC+6.0提供了大量详细的帮助信息,这些信息都可以在Help菜单得到。Help的各项命令如表9.9所示

21、。表9.9Help菜单命令的功能菜单命令功能说明Contents显示所有帮助信息的内容列表Search利用在线查询获得帮助信息Index显示在线文件的索引UseExtensionHelp开启或关闭ExtensionHelpKeyboardMap显示所有的键盘命令TipoftheDay显示TipoftheDay对话框TechnicalSupport显示DeveloperStudio的支持信息MicrosoftonthWebFreeStuff打开DeveloperStudio97FreeStuff页MicrosoftonthWebProductNews打开DeveloperStudio97产品消息

22、页续表(续表(2)菜单命令功能说明MicrosoftonthWebFrequentlyAskedQuestions打开DeveloperStudio97经常性问题页MicrosoftonthWebOnlineSupport打开Microsoft在线帮助页MicrosoftonthWebMSDNOnline打开Developer产品主页MicrosoftonthWebSendFeedback打开Developer产品信息反馈页MicrosoftonthWebBestoftheWeb打开最佳网页MicrosoftonthWebSearchtheWeb打开查询页MicrosoftonthWebWeb

23、Tutorial 打开指南页MicrosoftonthWebMicrosoftHomePage 打开Microsoft主页AboutVisualC+显示本版本的有关信息9.3 工具栏的使用工具栏的使用 9.3.1 标准标准(Standard)工具栏工具栏工具栏是许多菜单命令相对应的按钮的组合体,提供执行常用命令的快捷方法。第一次运行VisualC+6.0时,显示的是默认状态下的标准工具栏,如图9.6所示。图9.6窗口式的Standard工具栏 9.3.2 显示显示/隐藏工具栏隐藏工具栏如果用户对当前显示的工具栏不满意,可以自己选择适当的工具栏加以显示,并隐藏那些不用的工具栏。显示与隐藏工具栏的

24、步骤如下:(1)单击Tools菜单,选中Customize菜单项。(2)在弹出的对话框中,单击Toolbars标签,如图9.7所示。在该选项卡中显示有Toolbars列表框,其中显示默认的Menubar、Standard、BuildMiniBar和WizardBar工具栏条目被选中。若要显示某工具栏,只需单击该条目,使其前面出现“”;而要隐藏某工具栏,则再次单击该条目,使其前面的“”消失即可。图9.7Customize对话框中的Toolbars选项卡 9.3.3 工具栏的定制工具栏的定制用户可以根据需要定制新的工具栏,或者对已有的工具栏进行修改,如添加新按钮、删除已有按钮等。定制新的工具栏的步

25、骤为:(1)在图9.7中,单击New按钮,弹出NewToolbar对话框,输入新的工具栏名称(如MyTools)。(2)单击OK按钮,Toolbars列表框中增加新的工具栏(MyTools),同时它出现在屏幕上。单击Commands标签,出现图9.8。图9.8Customize对话框中的Commands选项卡(3)添加新按钮。在Category下拉列表框中选一项,对应的右边Buttons组框中会出现相应的一组按钮,从中选择需要的按钮,拖动到新创建的工具栏即可。工具栏中的其它按钮自动调整排列位置。(4)删除工具栏中的按钮。在出现图9.7或图9.8后,用鼠标点中该工具栏按钮并拖动,一直脱离Visu

26、alC+6.0的工具栏和菜单即可。9.4 资源与标识符资源与标识符 9.4.1 资源资源在Windows环境下进行程序设计时,可以将一些数据如字符串常量、位图等以特殊的格式存储在资源文件中。它们可以被单独地编辑修改,编写程序代码时只需引用它们的资源标识符即可,无须直接将数据写入程序代码中。图9.2(b)的资源 视 图 中 显 示 了 Windows资 源 的 类 型 , 包 括 加 速 键(Accelerator)、光标(Cursor)、对话框(Dialog)、图标(Icon)、菜单(Menu)、串表(String Table)、工具栏(Toolbar)和版本信息(Version)等,程序员也

27、可以根据需要自定义资源的类型。 9.4.2 资源编辑器资源编辑器使用资源编辑器,可以创建新的资源,修改已有的资源,拷贝资源以及删除无用的资源。创建或打开资源时,系统将会自动打开相应的编辑器。 1. 创建新资源创建新资源 从Insert菜单中选择Resource命令或从工具栏中单击Resource按钮,弹出InsertResource对话框,如图9.9所示。从ResourceType列表框中选择资源类型,然后单击New按钮即可创建新的资源。图9.9InsertResource对话框 2. 查看和修改资源查看和修改资源图9.2(b)中,单击“+”标记扩展每一分类来查看资源。可以用菜单命令复制、移动

28、、粘贴或删除资源,也可以双击它打开相应的编辑器来修改资源,并运用资源属性对话框来修改资源的语言属性或条件属性。 3. 资源模板资源模板创建资源模板的方法与创建资源文件的方法基本相同,区别在于必须使用File菜单中SaveAs命令将资源模板保存在MicrosoftVisualStudioCommonMSDev98Template文件夹中。创建资源模板后,可在资源模板上创建新的资源。 4. 资源标识符资源标识符资源标识符由映射到数值上的字符串组成,用于在源代码或资源编辑器中引用资源或对象。创建新的资源或对象时,系统自动为其提供默认标识符(如IDD_ABOUTBOX)和符号值。标识符和符号值自动保存

29、在系统生成的资源文件resource.h中。标识符通常带有描述性前缀,以表示资源或对象的类型。例如,加速键或菜单前缀为IDB_;对话框前缀为IDD_;光标前缀为IDC_;图标前缀为IDI_;位图前缀为IDB_;菜单项的前缀为IDM_;命令前缀为ID_;控件前缀为IDC_;串表中串的前缀为IDS_;消息框中的串前缀为IDP_。随着应用程序的增大和复杂程度的增加,与其相关的资源符号也会不断增多。要手工跟踪分散在不同文件中的大量资源符号是相当困难的。资源符号浏览器简化了资源符号的管理。使用资源符号浏览器,用户可以:(1)快速浏览已有资源符号的定义,以便了解每个资源的符号值、已使用的资源符号列表以及与

30、每个符号相关的资源。(2)创建新的资源符号。(3)更改资源的符号名和符号值。(4)删除不再使用的资源符号。(5)快速切换到某个资源所对应的编辑器中。9.5 应用程序的建立应用程序的建立 9.5.1 概述概述在VisualC+中,开发Windows应用程序有很多方法,最简单、最方便的方法当然是AppWizard。它用于创建基于MFC类库(MicrosoftFoundationClassLibrary)的Windows应用程序框架文件。这些文件包括了构造一个基于Windows的应用程序必需的所有文件,如源文件、头文件、资源文件和模块定义文件(应用程序的一些设置和属性描述)等。利用MFCAppWiz

31、ard的向导建立应用程序时,根据要建立的应用程序的不同,需要有不同的步骤(6步或4步),每一步要设置不同的选项,这样就可以得到开发应用程序的基本文件,然后再利用ClassWizard来实现应用程序的具体功能。 9.5.2 利用利用AppWizard创建一个新的项目创建一个新的项目本节首先利用AppWizard生成一个应用程序框架。以后的章节中将逐步介绍如何向其加入具体的实现内容。第一步,选择File菜单中的New命令,选中Project选项卡,如图9.10所示。选择MFCAppWizard(exe)。在Location编辑框中可直接键入目录名称,或者单击“”按钮选择已有的目录。在Project

32、name框中键入工程的名称,如Ex01,此时OK按钮激活。单击OK按钮后弹出“MFCAppWizardStep1”对话框,见图9.11。图9.10建立新项目对话框图9.11MFCAppWizardStep1对话框第二步,用该对话框选择应用程序的基本结构。可以选 择 Single document( 单 文 档 , 即 SDI) 、 Multipledocuments(多文档,即MDI)和Dialogbased(基于对话框)的界面。本例中选择默认值,即多文档。本例下面的几步均选择缺省值,可以直接在图9.11的窗口中点击Finish按钮,或者一步一步点击Next按钮。在出现图9.12所示的窗口时单

33、击OK按钮,MFCAppWizard为应用程序生成必要的初始化文件并在项目工作区窗口打开生成的项目(见图9.2)。从Build菜单或工具栏中选择Execute命令或按钮(也可按下Ctrl+F5)来运行程序,在出现的对话框中单击OK按钮,系统开始编译、连接,生成可执行的Windows程序。程序运行画面如图9.13所示。图9.12NewProjectInformation对话框图9.13AppWizard生成的应用程序框架的运行 9.5.3 程序分析程序分析现在分析一下MFCAppWizard产生的文件,可以使读者清楚了解VisualC+程序的一般组成及其工作原理。在FileView中双击所有文件

34、夹图标或其前的“+”号,出现图9.14。在几个主要的源程序文件中定义了如下几个类:(1) 应用程序类:在Ex01程序中是CEx01App,派生自CWinApp,头文件和源程序文件分别是Ex01.h和Ex01.cpp。在Ex01.cpp中定义了一个该类对象theApp,这是一个全局变量,用于初始化应用程序以及运行该应用程序提供的函数成员。每一个基于MFC类库的应用程序只能有一个该类对象。图9.14文件视图详细列应用程序开始运行时,自动调用应用程序框架内的WinMain函数(不同于C语言的主函数main)。Windows应用程序入口是WinMain函数,在基于MFC的程序中它被隐藏在应用程序框架内

35、部。该函数调用theApp对象的InitInstance( )函数成员进行必要的初始化,接着调用隐藏在基类CWinApp中的函数Run(),应用程序进入运行状态。用户可以通过关闭主框架窗口来终止应用程序的运行。这一操作将会引起一系列事件的发生:首先主窗口(CEx01Frame)对象将被删除,然后退出WinMain,最后删除theApp对象。CWinApp类的主要函数成员有:InitInstance函数:Windows系统允许用户同时运行同一应用程序的多个实例,每当启动新的应用实例时,WinMain都要调用InitInstance函数对程序实例进行初始化。InitInstance函数完成的初始化

36、工作主要包括:创建并注册文档模板;从INI文件中装载文件选项或Windows注册信息;创建窗口;处理命令行以打开命令行中指定的文档,或打开新文档。Run函数:完成程序的初始化工作后,WinMain将调用Run函数来处理消息循环。该函数不断检查消息队列中有没有消息。如果有消息,将消息发送出去,让程序执行相应动作;如果没有消息,则调用OnIdle函数作程序空闲时的处理。如果没有消息也无须作空闲时的处理,程序将一直等待,直到消息出现。应用程序结束时,Run函数调用ExitInstance做最后的退出工作。OnIdle函数:此函数用于处理程序空闲时的工作。缺省时,OnIdle函数会对用户界面作更新,或

37、清理在运行过程中创建的临时对象。ExitInstance函数:应用程序被终止时,该函数被调用。如需作某些清理工作,例如释放程序执行时占用的内存,用户可以重载该函数。下面是应用程序主文件Ex01.cpp的主要代码:/Ex01.cpp:定义应用程序的类行为/CEx01AppBEGIN_MESSAGE_MAP(CEx01App,CWinApp)/AFX_MSG_MAP(CEx01App)ON_COMMAND(ID_APP_ABOUT,OnAppAbout)/注意:ClassWizard(类向导)将可能添加或删除消息映射宏/AFX_MSG_MAP/标准的基于文档的文件命令ON_COMMAND(ID_F

38、ILE_NEW,CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN,CWinApp:OnFileOpen)/标准的打印设置命令ON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp:OnFilePrintSetup)END_MESSAGE_MAP()/CEx01App类的构造函数CEx01App:CEx01App()/在这里添加构造函数代码/在本程序中有且只有一个CEx01App对象CEx01ApptheApp;/定义全局CEx01App对象/CEx01App初始化BOOLCEx01App:InitInstance()AfxEnableCo

39、ntrolContainer();/允许包含OLE控件/标准的初始化部分/如果不想使用这些特性并想缩短最终可执行程序的长度,/应删除下面给定的所不需要的初始化例程#ifdef_AFXDLL/装入CTL3d32.DLLEnable3dControls();/当在动态连接库中使用MFC时调用此函数#elseEnable3dControlsStatic();/当静态连接MFC库时调用此函数#endif/改变此应用程序所存储的注册键,应该修改此字符串,/它可以是公司名或组织名等等SetRegistryKey(_T(LocalAppWizard-GeneratedApplications);LoadSt

40、dProfileSettings();/装入标准的INI文件选项(包括MRU)/注册应用程序程序文档模板,用于连接文档与框架窗口和视图CMultiDocTemplate*pDocTemplate;pDocTemplate=newCMultiDocTemplate(IDR_EX01TYPE,RUNTIME_CLASS(CEx01Doc),RUNTIME_CLASS(CChildFrame),/MDI主框架窗口RUNTIME_CLASS(CEx01View);AddDocTemplate(pDocTemplate);/创建主框架窗口CMainFrame*pMainFrame=newCMainFra

41、me;if(!pMainFrame-LoadFrame(IDR_MAINFRAME)returnFALSE;m_pMainWnd=pMainFrame;/分析标准的外壳命令、DDE及打开文件的命令行CCommandLineInfocmdInfo;ParseCommandLine(cmdInfo);/分析命令行命令if(!ProcessShellCommand(cmdInfo)returnFALSE;/显示并更新主框架窗口pMainFrame-ShowWindow(m_nCmdShow);pMainFrame-UpdateWindow();returnTRUE;(2)主窗口类:CMainFram

42、e派生自CMDIFrameWnd。主窗口对象负责管理标题栏、菜单、工具栏和状态栏。Windows自动管理用户与主窗口之间的大部分交互工作,如移动窗口、改变窗口大小、最大化或最小化窗口、关闭窗口等。在创建窗口时,标题栏和菜单栏会被自动创建,而工具栏和状态栏的创建则需要在OnCreate()函数中实现。下面是CMainFrame类的实现部分主要代码:/MainFrm.cpp:CMainFrame类的实现部分/CMainFrameIMPLEMENT_DYNAMIC(CMainFrame,CMDIFrameWnd)/以下为消息映射部分,消息以BEGIN_MESSAGE_MAP宏开始BEGIN_MESS

43、AGE_MAP(CMainFrame,CMDIFrameWnd)/AFX_MSG_MAP(CMainFrame)/注意:ClassWizard(类向导)将可能添加或删除消息映射宏ON_WM_CREATE()/AFX_MSG_MAPEND_MESSAGE_MAP()/消 息 映 射 以END_MESSAGE_MAP宏结束staticUINTindicators=ID_SEPARATOR,/状态栏指示器 ID_INDICATOR_CAPS, /大小写切换键(CapsLock)状态指示ID_INDICATOR_NUM,/数字锁定键(NumLock)状态指示ID_INDICATOR_SCRL, /滚动

44、锁定键(ScrollLock)状态指示;/CMainFrame类的构造函数和析构函数CMainFrame:CMainFrame()/在这里添加成员初始化代码CMainFrame:CMainFrame()intCMainFrame:OnCreate(LPCREATESTRUCTlpCreateStruct)if(CMDIFrameWnd:OnCreate(lpCreateStruct)=1)return1;if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP |CBRS_GRIPPER|CBRS_TOOL

45、TIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failedtocreatetoolbarn);return1;/若建立工具栏失败,返回1if(!m_wndStatusBar.Create(this)|!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)TRACE0(Failedtocreatestatusbarn);return1;/若建立状态栏失败,返回1/如果不想要泊坞的工具栏,则删

46、除下面的三行代码m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);return0;BOOLCMainFrame:PreCreateWindow(CREATESTRUCT&cs)if(!CMDIFrameWnd:PreCreateWindow(cs)returnFALSE;/通过修改CREATESTRUCTcs可以修改窗口类及其风格returnTRUE;(3)文档类:CEx01Doc派生自CDocument。主要用于在文档对象中存放程序数据,

47、并在其它对象的成员函数中对这些数据进行引用。另外,文档对象提供一个Serialize函数,用于串行化数据,如对磁盘数据进行存取。它有一个名为ar的CArchive对象成员,通过该对象将数据存储到磁盘上或从磁盘上读取数据。下面是文档类CEx01Doc实现的主要代码:/Ex01Doc.cpp:CEx01Doc类的实现/CEx01DocIMPLEMENT_DYNCREATE(CEx01Doc,CDocument)BEGIN_MESSAGE_MAP(CEx01Doc,CDocument)/AFX_MSG_MAP(CEx01Doc)/注意:ClassWizard(类向导)将可能添加或删除消息映射宏/AF

48、X_MSG_MAPEND_MESSAGE_MAP()/CEx01Doc构造函数和析构函数CEx01Doc:CEx01Doc()/在这里添加构造函数代码CEx01Doc:CEx01Doc()BOOLCEx01Doc:OnNewDocument()if(!CDocument:OnNewDocument()returnFALSE;/添加重新初始化代码/(SDI文档将再次利用该文档)returnTRUE;/CEx01Doc串行化(serialization)voidCEx01Doc:Serialize(CArchive&ar)if(ar.IsStoring()/添加保存文件代码else/添加装入文件代

49、码(4)视图对象:CEx01View派生自CView,用于管理程序客户区。对客户区的绘制工作由函数成员OnDraw函数完成,几乎所有应用程序的绘制工作都通过这一函数实现,编程时必须重载该函数。OnDraw函数通过调用GetDocument函数获得文档对象指针,通过指针读取文档对象中的数据。下面是CEx01View类实现的主要代码:/Ex01View.cpp:CEx01View类的实现/CEx01ViewIMPLEMENT_DYNCREATE(CEx01View,CView)BEGIN_MESSAGE_MAP(CEx01View,CView)/消息映射开始/AFX_MSG_MAP(CEx01Vi

50、ew)/注意:ClassWizard(类向导)将可能添加或删除消息映射宏/AFX_MSG_MAP/标准打印命令ON_COMMAND(ID_FILE_PRINT,CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView:OnFilePrintPreview)END_MESSAGE_MAP()/CEx01View构造函数和析构函数CEx01View:CEx01View()/在这里添加构造函数CEx01View:CEx01View()BOOLCE

51、x01View:PreCreateWindow(CREATESTRUCT&cs)/通过修改CREATESTRUCTcs来修改窗口类的风格returnCView:PreCreateWindow(cs);/CEx01View绘图voidCEx01View:OnDraw(CDC*pDC)CEx01Doc*pDoc=GetDocument()ASSERT_VALID(pDoc);/添加描绘特定数据的代码/CEx01View打印BOOLCEx01View:OnPreparePrinting(CPrintInfo*pInfo)/缺省的打印预处理returnDoPreparePrinting(pInfo);voidCEx01View:OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/)/添加打印前的额外初始代码void CEx01View:OnEndPrinting(CDC* /*pDC*/, CPrintInfo*/*pInfo*/)/添加打印后的清理代码另外,生成的源程序文件中还包含文件StdAfx.cpp,它用于包含MFC标准头文件。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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