您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 第二章 Windows应用程序框架
联系方式:北京源智天下科技有限公司第二讲:Windows应用程序框架杨章伟e-mail:yang505412@163.com1-2北京源智天下科技有限公司联系方式:课程内容安排•Windows应用程序设计基础•MFC应用程序框架•MFC应用程序框架说明•综合练习•思考和习题1-3北京源智天下科技有限公司联系方式:应用程序设计基础•Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法,其内部运行原理是一种事件驱动方式的程序设计模式,主要是基于消息的。当用户需要完成某种功能时会调用操作系统的某种支持,然后操作系统将用户的需要包装成消息,并投递到消息队列中,最后应用程序从消息队列中取得消息并进行响应,其流程如图2-1所示。应用程序操作系统用户消息事件驱动1-4北京源智天下科技有限公司联系方式:•Windows程序设计中,在应用程序中要完成某个功能,都是以函数调用的形式实现的。这些函数的集合就是Windows操作系统提供给应用程序编程的接口(ApplicationProgrammingInterface),简称WindowsAPI。程序员Windows应用程序API1-5北京源智天下科技有限公司联系方式:句柄•在Windows编程中读者将频繁接触到一个称为句柄(HANDLE)的概念。Windows程序中产生的任何资源(要占用某一块或大或小的内存),如图标、光标、窗口和应用程序的实例(已加载到内存运行中的程序)等。操作系统每产生一个这样的资源时,都要将它们放入相应的内存,并为这些内存指定一个唯一的标识号。这个标识号即是该资源的句柄。•比如在大街上来来往往的汽车,有许多是相同型号、相同品牌的,也有许多是不同型号、大小的汽车,那么如何分辩某一辆汽车是属于谁的呢?就是通过车牌号。因为车牌号是唯一的,那么车牌号就是汽车这个资源的句柄,如图2-3所示。1-6北京源智天下科技有限公司联系方式:北京源智天下科技有限公司联系方式:消息及消息队列•在应用程序中,用户所有的操作都是通过消息机制(Message)来传递给操作系统的,操作系统将每个事件都包装成一个称为消息的结构体MSG来传递给应用程序。例如用户在某个程序活动时按了一下键盘,操作系统马上能感知到这一事件,并且能够知道用户按下的是哪一个键。操作系统并不决定对这一事件如何作出反应,而是将这一事件转交给应用程序。由应用程序决定如何对这一事件作出反应,对事件作出反应的过程就是消息响应。1-8北京源智天下科技有限公司联系方式:消息与应用程序•在Windows编程中,消息与应用程序的关系如图2-4所示。事件操作系统应用程序消息消息响应1-9北京源智天下科技有限公司联系方式:应用程序框架•应用程序框架是一个集合,其可以提供一般应用程序所需的全部面向对象软件组件。或者说,一个应用程序框架是一个类库的超级集合。一个应用程序框架不同于单纯的类的集合,其自己定义了程序的结构。•比如奔驰汽车的生产厂家,其可以生成所有的奔驰汽车的零件,并有其自己的生产线,那么这个厂家就是一个应用程序框架。在这个框架中,可以生产出很多型号的奔驰汽车,如图2-5所示。1-10北京源智天下科技有限公司联系方式:简介•MFC即微软基本类库,其位于任何WindowsAPI之上。在这个类库中包含了一百多个程序开发过程中最常用到的对象。形象地说,MFC就是一个人才管理中心。其中有许许多多掌握了各种技能的人,有工程师、教师、医生等。当社会需要某种技能的人时,就从该MFC中取出并应用到环境中,如图2-6所示。1-11北京源智天下科技有限公司联系方式:应用程序框架说明•打开前面创建的HelloWorld工程的工作区,可以看到系统在生成应用程序框架的过程中,自动生成了以下几个类。•CHelloWorldApp;•CMainFrame;•CHelloWorldView;•CHelloWorldDoc。•这些类在工程HelloWorld工作区上的显示如图2-16所示。1-12北京源智天下科技有限公司联系方式:北京源智天下科技有限公司联系方式:。如果需要创建MFC应用程序,首先要使用CWinApp类,因为CWinApp类不仅代表了程序中运行的主线程,而且代表了应用程序本身。在任何MFC应用程序中只有一个CWinApp对象,用于控制应用程序的初始化、启动应用程序、运行主消息循环、终止应用程序。CHelloWorldApp类用户应用程序1-14北京源智天下科技有限公司联系方式:。其是由MFC中的CFrameWnd派生来的,所以它也是一个框架窗口。主框架窗口类负责标题栏、菜单栏工具栏及状态栏的生成。事实上,这些子窗口是可以按照用户的意图自定义的,只需要修改主框架窗口的实现文件即可。1-15北京源智天下科技有限公司联系方式:,而CHelloWorldDoc类的基类为CDocument。之所以把CHelloWorldView类和CHelloWorldDoc类一起介绍是因为这两个类是密切相关的。视图是显示文档数据的界面,它主要占据着主框架窗口的客户区,视图类不仅把程序文档数据显示出来,它还能接受用户的输入、编辑。视图对象也通过消息与主框架、文档对象相互操作。1-16北京源智天下科技有限公司联系方式:文档与视图的关系文档对象是存储程序数据的地方。一般来说,把要存储的数据放到文档对象中,即把要存储的数据作为文档对象的成员变量,进而实现文档的串行化。文档与视图的关系如图2-18所示。应用程序文档模板文档主框架窗口1-17北京源智天下科技有限公司联系方式:综合练习•应用VisualC++6.0编写一个Windows应用程序,要求在该程序窗口坐标的(200,200)位置显示“欢迎使用VisualC++”的字样。1-18北京源智天下科技有限公司联系方式:提示新建一个【MFCApplication[exe]】应用程序,根据AppWizard向导一步一步建立MFC框架,在生成框架的OnDraw中加入语句:pDC-TextOut(200,200,欢迎使用VisualC++);1-19北京源智天下科技有限公司联系方式:思考和习题•什么是API?•句柄的作用是什么?•消息机制的作用是什么?•什么是MFC?其作用是什么?•如何创建一个基于MFC的应用程序框架?•系统在生成应用程序框架的过程中,自动生成了几个类?其分别是?•分别说出生成框架时创建的4个类的作用。。
本文标题:第二章 Windows应用程序框架
链接地址:https://www.777doc.com/doc-3242485 .html