《面向对象的程序设计语言——C》课件--第4章

上传人:仙*** 文档编号:244373167 上传时间:2024-10-04 格式:PPT 页数:42 大小:263.50KB
返回 下载 相关 举报
《面向对象的程序设计语言——C》课件--第4章_第1页
第1页 / 共42页
《面向对象的程序设计语言——C》课件--第4章_第2页
第2页 / 共42页
《面向对象的程序设计语言——C》课件--第4章_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,返回,第四章 利用,MFC,开发,Windows,应用程序,本章导读,理解,MFC,的概念和作用。,理解,Windows,应用程序的特点和运行机制。,掌握利用,MFC,Appwizard,创建,Windows,应用程序的步骤和方法,弄清,MFC,Appwizard,所创建的应用程序中所产生的主要类及其功能、组成文件和程序的框架结构。,理解消息的概念,掌握编写,Windows,应用程序过程中所涉及到的消息的种类、特点、消息的发送和接收的基本过程和机制。,掌握消息映射、消息处理函数的概念及二者间的关系。,掌握利用,Class Wizard,增加、修改和删除窗口消息处理函数的方法和步骤,并理解程序代码的变化过程和特点。,1,本章导读,MFC(Microsoft Foundation Class),是,Microsoft,公司推出的,Microsoft,基本类库。在编写,Windows,应用程序时,必须编写的大量重复代码都由,MFC,中定义的类和支持代码提供了;不必再直接使用,Windows API(,应用程序接口)来进行编程工作,使用,MFC,提供的位于,Windows API,之上的,C+,库,使程序员的工作变得更加容易。在,Visual C+6.0,中,用户不仅可以方便地使用,MFC,,而且还可以使用向导(,Wizard),来辅助开发应用程序。,MFC,实际上是一个扩展的、丰富的,C+,类层次结构,在,MFC,中封装了,SDK,结构、功能及应用程序框架内部技术,隐藏了过去许多,Windows,程序不得不处理的许多重复工作。,因此,从本章开始,将着重讨论如何利用,Visual C+6.0,的强大功能开发,Windows,下的应用程序。,2,4.1,Windows,应用程序的特点与消息驱动机制,基于,Windows,操作系统的应用程序的特点是:,标准的图形用户界面,,比,如窗口、菜单、按钮、列表框等;,应用程序与硬件无关的特性,对于同一类硬件,不论厂家、型号,程序都无需进行任何修改就可以运行;,所有的,Windows,应用程序都是消息驱动机制,也就是说,Windows,程序是通过操作系统发送的消息来处理用户的输入的。,在进行,Windows,编程之前,必须了解,Windows,的运行机制。在,Windows,操作系统中,无论是系统产生的动作或是用户运行应用程序产生的动作都称为事件(,Events),产生的消息(,Message)。,无论是,Windows,应用程序的设计、还是它的应用,都是基于消息驱动方式的,这是,Windows,应用程序与传统的,应,3,用程序最大的区别。在传统的编程方式中,程序是主动的。程序主动执行,只有当需要用户通过键盘或鼠标输入信息时,才进行查询或等待。获得输入后,程序继续运行。而,Windows,应用程序是被动的,正常情况下,只是等待被消息触发。当用户点击鼠标或按下了键盘,则由操作系统将这些操作转化为特殊的消息,传递给应用程序,应用程序再用对应的消息处理过程进行处理,处理完毕后,继续等待下一个消息。,消息驱动是,Windows,操作系统的一大特色,操作系统将包括用户输入在内的各种事件以消息的形式发送到目标,目标系统再根据消息的具体内容进行相应的处理。,4.1,Windows,应用程序的特点与消息驱动机制,4,4.2,利用,MFC,Appwizard,创建,Windows,应用程序,在,C+,中,事物之间的关系是通过类的派生和类的成员函数的重载来反映的。而在,Visual C+6.0,中,类同样是最重要的元素。如一个字符串可以是类,Cstring,的对象,一个窗口可以是类,CWnd,的对象,一个对话框可以是类,Cdialog,的对象等等。,Visual C+6.0,中的,MFC AppWizard(,应用程序向导)可以使用户自动生成一些常用的标准程序结构和编程风格。例如一般的,Windows,应用程序结构、,DLL,应用程序结构、单文档(,SDI),应用程序结构、多文档(,MDI),应用程序结构等。,下面详细介绍利用,MFC AppWizard,创建一个,Windows,应用程序的步骤:,第零步,启动,Visual C+6.0,,选择【,File】,菜单下的【,New】,菜单项,选择【,Projects】,标签,选择【,MFC AppWizard(exe)】,项目类型,在【,Project name】,中,输入,5,项目名,MyExp,,,定位于“,E:C+EXAMPLE”,文件夹中,单击【,OK】,按钮。,第一步,选择【,Single document】,应用类型,即单文档应用程序,其他使用默认值,单击【,Next】,按钮。,第二步,让用户选择程序中是否加入数据库支持,在此使用默认值【,None】,,单击【,Next】,按钮。,第三步,让用户选择在程序中加入复合文档,自动化或,ActiveX,控件的支持,在此使用默认值,单击【,Next】,按钮。,第四步,让用户选择应用程序的一些特性,在此使用默认值,单击【,Next】,按钮。,第五步,让用户选择应用程序主窗口的风格、在源文件中是否加入注释、使用怎样的,MFC,类库,在此使用默认值,单击【,Next】,按钮。,4.2,利用,MFC,Appwizard,创建,Windows,应用程序,6,第六步,用户可以对,MFC AppWizard,提供的缺省类名、,基类,名、头文件名、源文件名进行修改,使用默认值,单击【,Finish】,按钮。则会显示出用户在前面几个步骤中作出的选择内容,单击【,OK】,按钮,系统开始创建应用程序,并回到,Visual C+6.0,的主界面。,运行过的应用程序,MyExp,可以脱离,Visual C+6.0,单独运行,运行该文档可以双击“,E:C+EXAMPLEDebug”,下的,MyExp,.exe,文件。和所有的,Windows,应用程序一样,,MyExp,也包含标题栏、菜单栏、工具栏、状态栏等窗口元素。,4.2,利用,MFC,Appwizard,创建,Windows,应用程序,7,4.3,MFC,应用程序的类和文件,4.3.1 类说明,AppWiZard,在生成应用程序时,共派生了5个类单击“,MyExp,classes”,左侧的“+”展开所有的类,即可显示出应用程序,MyExp,的5个类,其中:,CAboutDlg,:,关于,About,对话框的对话框类,CMainFrame,:,主框架窗口类,CMyExpApp,:,应用程序类,CMyExpDoc,:,文档类,CMyExpView,:,视图类,在工程中,每个类都拥有自己的类定义文件(*.,H),和类实现文件(*.,CPP)。,类定义文件主要保存各种类的定义;类实现文件主要保存各种类的成员函数的实现代码。,8,下面分别对这5个类进行说明:,关于,About,对话框的对话框类,CAboutDlg,CAboutDlg,是工程,MyExp,的对话框类,它是由,MFC,类库中的,CDialog,类派生而来的。,主框架窗口类,CMainFrame,CMainFrame,是工程,MyExp,的主框架窗口类,它的基类是,CFrameWnd,。,头文件为,MainFrm,.h,,实现文件为,MainFrm,.,cpp,。,主框架窗口类用于管理主程序的窗口,来显示窗口的标题栏、工具栏、状态栏等;同时还处理对窗口操作的消息,例如窗口最大化、最小化、改变窗口大小等一般,操,作。视图窗口是主框架窗口的子集,对于多文档界面(,MDI),应用程序,主框架窗口是所有,MDI,子窗口的容器。,4.3,MFC,应用程序的类和文件,9,应用程序类,CMyExpApp,CMyExpApp,是工程,MyExp,的应用程序类,它的基类是,CWinApp,。,头文件为,MyExp,.h,,实现文件为,MyExp,.,cpp,。,应用程序类管理程序的整体,控制应用程序的所有对象,包括文档、视图和边框窗口,并完成应用程序的初始化工作和程序退出时的清除工作。,注意:每个基于,MFC,的应用程序都必须有一个从,CWinApp,类派生的对象。,文档类,CMyExpDoc,CMyExpDoc,是工程,MyExp,的文档类,它的基类是,CDocument,。,头文件为,MyExpDoc,.h,,实现文件为,MyExpDoc,.,cpp,。,4.3,MFC,应用程序的类和文件,10,文档类负责存放程序的数据并读取磁盘文件数据,或将磁盘文件数据写入磁盘文件中。文档类必须通过视图类实现与用户的交互。,视图类,CMyExpView,CMyExpView,是工程,MyExp,的视图类,它的基类是,CView,。,头文件为,MyExpView,.h,,实现文件为,MyExpView,.,cpp,。,视图类主要负责管理视图窗口,显示文档类中的数据,可以显示在屏幕上,也可以输出到打印机或其他设备上;也负责处理用户数据,接受用户对数据的鼠标、键盘操作并传送给文档类对象。,4.3,MFC,应用程序的类和文件,11,4.3,MFC,应用程序的类和文件,4.3.2 文件说明,App Wizard,在自动生成工程时,除了生成上面介绍的各个类的头文件和实现文件外,还生成了一些为建立,应,用程序所需要的其他文件。这些文件可以在应用程序生成时指定的路径(,E:C+EXAMPLE,MyExp,),中找到,下面分别对这些文件加以说明:,1.,MyExp,.,clw,:Class Wizard,的信息存储文件,存储由,Class Wizard,编辑已有的类或添加新类的信息,存储由,Class Wizard,建立和编辑各种消息处理函数和映射变量等的信息。,2.,MyExp,.,dsp,:Project,文件,即工程文件。,Project,文件中保存着工程的各种信息,一个工程文件对应一个工程应用程序。,12,3.,MyExp,.,dsw,:Workspace,文件。一个,Workspace,文件可包含一个或多个工程。,4.,MyExp,.,rc,:,资源定义文件,包含程序资源的定义,其中保存了应用程序中使用到的各种资源的信息,包括,存,贮在文件夹中的图标、位图和光标等。,5.,Resource.h:,标准的头文件,它包含了所有资源符号的定义,与,MyExp,.,rc,文件相对应。,6.,StdAfx,.h:,包含在所有,App Wizard,程序中的标准头文件,它用于包含其他包含在预编译头文件中文件。,7.,StdAfx,.,cpp,:,包含在所有,App Wizard,程序中,它包含所有标准,include,文件。,8.,res,MyExpDoc,.,ico,:,文件中包含了打开文档时所用的图标文件。,4.3,MFC,应用程序的类和文件,13,9.,res,MyExp,.rc2:,资源定义文件,包含了用,vc,不能直接编辑的资源。可以将所有不能由资源编辑器编辑的资源放置到这个文件中。,10.,res,MyExp,.,ico,:,应用程序的图标文件。应用程序图标包含在资源文件,MyExp,.,rc,中。,11.,res,Toolbar.bmp:,用于创建工具栏按钮的位图文件。初始栏工具栏和状态栏是在主边框窗口类中构造的。,12.,ReadMe,.txt:,包含了对所有该程序的文件的解释信息,并说明了所有创建的类。,另外,如果在,App Wizard,的第4步中选择了,Context_sensitive Help,选项,则,App Wizard,会自动生成一个.,hpj,文件和一些.,rtf,文件,它们用以给出上下文的帮助。,4.3,MFC,应用程序的类和文件,14,Windows,应用程序一般是由消息驱动的(,message-driven),,这也是,Windows,编程方式与其他编程方式最大的不同之处。,消息就是操作系统通知应用程序某件事情已经发生的一种方式。例如,当用户移
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!