面向对象-VC-++编程环境_第1页
面向对象-VC-++编程环境_第2页
面向对象-VC-++编程环境_第3页
面向对象-VC-++编程环境_第4页
面向对象-VC-++编程环境_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章VC++6.0开发环境1本课程的主要内容:可视化程序设计方法1)API(ApplicationProgrammingInterface)2)MFC(MicrosoftFoundationClass)课程目标:能自己编写一个面向对象的管理系统(如学生管理系统)各个章节的主要内容是什么?区别:API是传统的编程方法,MFC是交互式程序设计方法。MFC方法把API方法中实现不同功能的代码作为类的方法已经封装到类中(微软建好了类库),我们只需建立类上的对象。一、本课程是讲什么的?2二、WINDOWS特点31、WINDOWS应用程序的一个突出特点是它有一个美观的图形用户界面(GUI)。这个图形用户界面与键盘和鼠标配合起来,使得用户对应用程序运行的控制及操作变得极为方便。图形用户界面是由许多不同的图形元素组成的,并且某些图形元素在接受了用户的某个动作后,可以使程序执行某种相应的操作。图形用户界面就是WINDOWS应用程序与用户交互的一个窗口,复杂的应用程序可能需要多个窗口。42、Windows中的事件驱动程序设计启动输入姓名输入第一次测试成绩输入第二次测试成绩输入第三次测试成绩计算平均成绩结束过程驱动方法计算平均成绩启动消息处理结束输入姓名输入第一次成绩输入第二次成绩输入第三次成绩计算平均成绩事件驱动方法计算平均成绩5Windows程序设计是完全不同与传统的DOS设计方法,Windows应用程序是一个事件驱动方式的程序设计模式,主要是基于消息的,当用户需要完成某种功能时,会调用操作系统的某种支持(告诉操作系统),然后操作系统将用户的需要包装成消息并投递到消息队列中,最后应用程序从消息队列中取走消息并进行响应。6三、WINDOWS运行原理

要理解Windows开发过程,先要了解Windows运行机制,因为VC++是Windows开发语言,我们要明白在Windows环境下编程和在其它环境下编程的根本区别,全面的讨论Windows内部运行机制,将需要一本书的容量,我们没有必要深入了解所有细节,但对Windows根本性的概念,是VC++程序员必须掌握的知识。7应用程序输入、输出设备消息队列操作系统1234应用程序、操作系统、输入输出设备交互图8箭头1表示操作系统能操纵输出设备以执行特定的功能,例如让声卡发出声音,让显卡发出图形。箭头2表示操作系统能感知输入设备状态的变化,如鼠标移动,键盘按下,并知道鼠标移动的具体位置,键盘按下的是哪一个字符。这就是操作系统和计算机硬件之间的交互关系。应用程序开发者一般不需要知道具体的细节,我们所关心的仅仅是操作系统和应用程序之间的关系。9箭头3表示应用程序可以通知操作系统执行某个具体的动作,如操作系统能控制声卡发出声音,但它并不知道何时该发出何种声音,需要应用程序告诉操作系统该发出什么样的声音,这个关系好比有个机器人能够完成行走的功能,但是如果人们不告诉他往哪个方向走,机器人是不会主动行走的。这里的机器人就是操作系统。人们就是应用程序。10那么应用程序是如何通知操作系统执行某个功能的呢?有过编程经验的都知道,在应用程序中要完成某个功能(function),都是以函数调用的形式实现的,同样,应用程序也是以函数调用的方式来通知操作系统执行相应的功能的。操作系统所能完成的每一个特殊功能通常都有一个函数与其对应,也就是说,操作系统把它所能完成的功能以函数的形式提供给应用程序使用,应用程序对这些函数的调用就叫做系统调用,这些函数集合就是Windows操作系11统提供给应用程序编程的接口(ApplicationProgrammingInterface)简称API。如createwindow就是一个API函数,应用程序中调用这种函数,操作系统就会按照该函数提供的参数信息产生一个相应的窗口。12向上的箭头4表示操作系统能够将输入设备的变化上传给应用程序,如用户在某个程序活动时按了一下键盘,操作系统马上就感知了这一事件,并且知道用户按下的是哪个键,但操作系统并不决定对这一事件如何做出反应,而是将这一事件转交给应用程序,由应用程序决定如何对这一事件做出反应。好比有个蚊子叮了我们一口,我们的神经末梢(相当于操作系统)马上感知了这一事件,并传递给大脑(相当于应用程序),我们的大脑来决定如何对这一事件做出反应,如打死蚊子。对事件做出反应的过程就是消息响应。13操作系统如何将感知的事件传递给应用程序的呢?这是通过消息机制来实现的。操作系统将每个事件都包装成一个称为消息的结构体message来传递给应用程序。对每一个应用程序,操作系统都会给它建一个消息队列(先进先出的缓冲区,通常是某种变量类型的数组),消息队列中每一个元素都是消息,操作系统按消息产生的先后顺序放入消息队列中,应用程序总取队列中队首消息,应用程序取走消息,那么就知道用户操作和程序状态。例如wchar消息,从消息得知输入了一个14字符,通过消息的附加参数知道是哪一个字符,应用程序得到消息后就要对消息进行处理(就是通常所说的消息响应),消息响应是通过编码实现的,消息响应代码中可能包含操作系统的其它函数以完成一个特定的功能。例如收到窗口关闭的消息,会调用销毁窗口这样一个API函数去关闭窗口,或弹出一个消息框询问用户是否真关闭窗口。151VisualC++简介是Windows环境下最主要的应用开发系统之一是C++语言的集成开发环境与Win32紧密相连(C++可以调用Win32提供的各种函数)强大的调试功能为大型复杂软件的开发提供了有效的排错手段2可视化指软件开发阶段的可视化利用计算机图形技术和方法2.1VisualC++6.0简介及开发环境概述163开发环境开发环境是程序员同VC++的交互界面通过它,可以创建工程文件访问资源编辑器使用内部调试器访问程序源代码172.2菜单栏Edit菜单File菜单View菜单Insert菜单18Project菜单Build菜单Tools菜单Windows菜单19File->New->Files(1)VC++的菜单栏---File菜单20File->New->Projects21断点作用:中断程序的执行过程,以便检查程序代码、变量和寄存器值位置断点数据断点消息断点用来设置删除和查看断点(a)Breakpoints选项(2)VC++的菜单栏---Edit菜单22位置断点通常在源代码的指定行、函数的开始或指定的内存地址处设置,当程序执行到指定位置时,位置断点将中断程序的执行在位置断点中还可以设置断点条件,此时必须先指定位置,然后再设置条件断点数据断点是在变量或表达式上设置,当变量或表达式的值改变时,数据断点将中断程序的执行消息断点是在窗口函数WndProc上设置,当接收到指定的消息时,消息断点将中断程序的执行23(b)ListMembers选项利用此选项,可减轻输入代码的工作量。如在变量名之后键入“.”或“->”,系统就会自动显示所有有效的成员名供选择(c)TypeInfo选项

如果在源代码中将鼠标指针停在某一变量或函数上,那么系统将显示所指变量或函数等的语法提供有效的成员名24(d)ParameterInfo选项

当输入代码时,若在输入函数名之后键入左括号,系统将显示该函数的完整原型,并用黑体显示其第一个参数。输入第一个参数之后,接着就会出现第二个参数,依此类推(e)CompleteWord选项

系统自动完成当前关键词或语句其余部分的输入。如果不能自动完成,则给出适当的提示辅助用户完成25在View菜单中可以:改变窗口改变工具栏的显示方式检查源代码激活调试等View->ClassWizard选项(a)ClassWizard选项(3)VC++的菜单栏---View菜单26(b)ResourceSymbols选项

该选项将打开资源符号浏览器,从中可以浏览资源编辑符号资源编辑符号是映射到整数值上的一串字符,相当于资源的一个代号,在同一个程序中,资源编辑符号不能重复27(c)ResourceIncludes选项

该对话框包含资源符号头文件名和预处理指令。28(d)Workspace选项

如果工作区没有显示或者不是处于当前状态,则选择该项将显示工作区窗口。(e)Output选项

在输出窗口中显示程序建立过程(如编译、链接等)的有关信息或错误信息,并且显示调试运行时的输出结果。29(a)NewClass选项该选项用来创建新类并添加到项目中(4)VC++的菜单栏---Insert菜单30使用Project可以创建、修改和存储正在编辑的工程(项目)文件工程文件是一种机制,组合了一个应用程序的所有源文件的组成部分。工程文件包含在扩展名为.MAK的文件中。(5)VC++的菜单栏---Project菜单31(b)AddToProject选项

选择该选项将打开一个级联子菜单通过级连子菜单,可以把文件、文件夹、数据链接以及VC组件或控件添加到当前工程文件中在该子菜单中可以进行如下操作:(1)New:创建新的文件;(2)NewFolder:插入新的文件夹;(3)Files:插入已有文件;(4)DataConnection:添加数据链接;(5)ComponentandControls:通过该项将可以插入VC组件或者已注册的ActiveX控件。插入时相当于插入相关的头文件(.h文件)和实现文件(.cpp文件),并且更新工作区窗口的信息。(a)SetActiveProject选项设定指定的项目为工作区的活动项目32Build菜单用于编译、建立和执行应用程序(b)Build选项对最后修改过的源文件进行编译和链接(a)Compile选项只编译当前文件而不调用链接器或其它工具。输出窗口将显示编译过程检查出的错误或警告信息,在错误信息处单击鼠标右键,可以得到错误代码的位置(c)

RebuildAll选项该选项允许用户编译和链接所有的源文件(包含资源文件),而不管它们何时曾经被修改过(6)VC++的菜单栏---Build菜单33(d)BatchBuild选项

该选项能单步重新建立多个项目文件,并允许用户指定要建立的项目类型Win32Release(发行版)、Win32Debug(调试版)。VC提供了两种应用程序类型34(e)

StartDebug选项从当前语句开始执行程序直到遇到断点或遇到程序结束单步执行程序,并在遇到函数调用时进入函数内部再从头单步执行使程序在运行到当前光标所在位置时停止(相当于设置一个临时断点)调试过程中直接进入到正在运行的进程中35

调试器

1.程序调试状态的进入使用具有调试功能的操作将使程序进入调试状态,常用的办法有:通过Build|StartDebug|Go或工具栏上的GO按扭运行到断点。通过Build|StartDebug|StepInto单步执行程序。通过Build|StartDebug|StepOver单步执行程序。通过Build|StartDebug|RuntoCursor运行程序到光标处。程序进入调试状态后,调试器自动启动。在调试状态下,Build菜单被Debug菜单替换,并且屏幕上出现调试工具栏。下面重点介绍一下调试信息的观察。362.调试信息窗口的调出方式

调试过程中可能需要观察变量或表达式的值,最简单的办法是将鼠标指在一个变量或事先选中的一段表达式上,稍微停留一会儿,屏幕上即显示一个小的米黄色提示窗,显示出变量或表达式的值(如图所示)。37还可以使用观察窗口(Watch)、变量窗口(Variables)和快速观察窗口(QuitchWatch)来观察、计算、甚至修改变量或表达式的值。下面是调出这个几个窗口的方法:(1)View|DebugWindows|Watch:调出观察窗口(2)View|DebugWindows|Variables:调出变量窗口(3)Debug|QuitchWatch:调出快速观察对话框38调试器图观察窗口与变量窗口393.各调试信息窗口的用法观察窗口(Watch)如图所示,它有多个页,通过底部的Watch1、Watch2、Watch3等选项卡进行切换,当被观察的内容很多时,可安排在不同的页内进行分页显示。用户可单击name下的空白行来增加观察变量或表达式,也可以从源代码窗口中选中一个变量或表达式,然后将其拖放到观察窗口来增加一个观察表达式(这里所说的表达式也含单个变量的情况,下同)。在观察窗口中选中一行,然后按Delete键可删除一个观察表达式。也可以先选中一个观察表达式然后输入新内容来修改一个观察表达式。程序在调试过程中,观察窗口内容会自动刷新,并且用红色字体显示刚被改变过的表达式的值。

40

若仅仅要观察变量或对象而不是表达式的值,变量窗口(Variables)会更加方便。变量窗口如图所示,它有三个页,Auto选项页显示程序中当前执行的语句及其之前的一些语句中所用到的变量。同时,当某个函数返回时,显示该函数的返回值。Locals选项页中显示的是当前函数中的局部变量。this选项页中显示的是this指针当前所指向的对象。

41图快速观察窗口

快速观察对话框用于快速观察变量或表达式的值,用Debug|QuitchWatch菜单可调出快速观察对话框,其结构如图所示。42在Expression框中输入待观察的变量或表达式,单击Recalculate按扭可立即计算出变量或表达式的值并显示在下方窗口内,单击AddWatch按扭可将变量或表达式添加到Watch窗口中。单击Close按扭可关闭此对话框。另外,VC的调试窗口还有:寄存器窗口View|DebugWindows|Registers(显示CPU的各个寄存器的值)内存窗口View|DebugWindows|Memory(显示指定内存区域的内容)调用堆栈窗口View|DebugWindows|CallStack(显示当前各个函数的调用关系及调用参数)反汇编窗口View|DebugWindows|Disassembly(显示VC语句对应的汇编语言指令)43工具栏是一种图形化的操作界面,具有直观和快捷的特点,熟练掌握工具栏的使用对提高编程效率非常有帮助。工具栏由某些操作按钮组成,分别对应着某些菜单选项或命令的功能。用户可以直接用鼠标单击这些按钮来完成指定的功能。2.3VisualC++6.0的工具栏44

1.工具栏的构成如图所示,工具栏位于菜单的下面。工具栏中的操作按钮和菜单是相对应的。VisualC++中包含有十几种工具栏。默认时,屏幕工具栏区域显示两个工具栏,即“Standard”工具栏和“BuildMiniBar”工具栏。45

2.工具栏的定制与修改用户可以根据自己的需要添加新的工具栏,或者对已有工具栏进行修改,如添加新按钮、删除已有按钮等。若需要添加工具栏,只需选择Tools|Customize|Toolbars|New选项,然后在对话框中输入相应的名字即可。46项目工作区:VC++6.0以项目工作区的形式来组织文件、项目和项目配置。每个项目工作区由工作区目录中的项目工作区文件组成。项目工作区文件(DSW)含有工作区的定义和项目中所包含文件的所有信息。项目:在使用VC++6.0编写应用程序时,每个应用程序就是一个项目。项目就是文件的集合,它包括了资源文件、头文件、源代码文件、程序结构消息文件和系统参数设置文件。要编写一个应用程序就必须创建一个项目,它对应的文件扩展名为dsp,项目文件可以导出成MAK文件。2.4项目与项目工作区47在工作区中添加项目:

用File->Open选项可打开已存在的项目;通过New对话框的Projects选项卡创建新的项目,并选择Addtocurrentworkspace复选框。

VC以项目工作区的形式来组织文件、项目和项目配置1.创建新的项目工作区创建新的空工作区步骤:(a)File->New->Workspaces->输入工作区名字并指定工作区目录2.4项目与项目工作区482.项目工作区窗口简介

VC项目工作区由ClassView、ResourceView及三个面板组成49图形用户界面中,将与用户交互的界面元素称为资源。资源包括菜单、对话框、图标、位图、工具栏、加速键、串表等。在VC中,源代码或资源编辑器为了引用资源和用户自定义的其它对象,于是就引入了一种与资源一一对应的符号即资源符号,使之能够以字符串的方式被引用。

资源符号是映射到整数值上的一串字符,是一种标识符。每当创建一个新的资源或资源对象时,系统就会为其提供一个缺省的资源符号名称并赋一个整数值,该定义保存在resource.h文件中。资源图标光标菜单位图对话框资源是一种界面元素,用户可以从中获得信息并在其中执行某个动作2.5资源及资源编辑器50单击New按钮新建资源符号输入新资源符号的名称由于资源符号不能重复,因此应按照一种标准来定义资源符号进行符号定义View->ResourceSymbols(1)资源的建立51资源符号的取值范围一般为0~32767(2)资源符号定义的常用前缀

52资源编辑器图ResourceView页VC中几乎每种资源都对应着一种编辑器,用于对这种资源的可视化编辑,而资源编辑器是这些专门编辑器的统称。将工程工作空间窗口切换到ResourceView页,可以看到工程内的各种资源,如下图所示。531.菜单编辑器在图中,双击Menu下的菜单标记(图中为IDR_MAINFRAME,如果工程有多套菜单,则有多个标记),在主窗口内就会打开菜单编辑器,如下图所示。使用菜单编辑器可完成菜单的可视化设计及有关属性的静态设置工作,详细用法见后面章。图菜单编辑器542.对话框编辑器在下图中,按鼠标右键单击Dialog,在弹出的右键菜单中选择“InsertDialog”,可向工程中插入一个对话框并打开对话框编辑器(如图所示)。553.工具条编辑器

56

VC的窗口控制初学VC者觉得VC的窗口有时“乱跑”,有时又呆在一个地方“碍事”却没法移动它。其实这是没有掌握好“停靠(Docking)”型窗口的特点。在VC里面,有两种窗口类型,一种窗口类型是文档型窗口,另外一种窗口类型是停靠型(Docking)窗口。文档型窗口可以看作是各种文档的容器,它的行为更像普通窗口,操作也只是一些普通的窗口操作,代码编辑器(主窗口)就是一个典型的文档型窗口;停靠型窗口有工程工作空间窗口(WorkSpace)、输出窗口(Output)、观察窗口(Watch)、变量窗口(Variables)、工具栏以及主菜单等。57

VC的窗口控制停靠型窗口具有两种不同的状态,分别是停靠状态和浮动状态。所谓停靠状态,是指窗口只能停靠在屏幕的四个边缘上,不能随意移动,这时窗口没有标题条,但是有把手;所谓浮动状态,是指窗口浮动在其它窗口上,位置可以随意移动,跟停靠状态相反,这时窗口没有把手,有标题条。要移开停靠状态的窗口,拖动其把手即可。当停靠的窗口离开主窗口的边框时,它又变成浮动状态,这时拖动标题栏可以移动这种窗口。掌握了这一特性,可将这些小窗口随意安排在主窗口中的空白处,以不妨碍源代码的观察58

VC的窗口控制图停靠型窗口的把手59

VC的窗口控制

有时候不小心将窗口关闭了,却不知如何再让它出来,这时可用View|Workspace菜单使工程工作空间窗口显示出来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论