应用程序概述.doc





《应用程序概述.doc》由会员分享,可在线阅读,更多相关《应用程序概述.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 2 章 MFC应用程序概述 2.1 Windows应用程序概述 2.2 MFC应用程序框架 2.2.1 创建MFC应用程序 2.2.3 MFC单文档程序组成 2.3 消息映射与消息处理 2.3.1 消息类别 1.2.2 类向导 2.5 应用实例1 Windows窗口具有哪些应用特点?2 说明什么是消息?消息结构?消息队列?消息循环?消息映射?事件驱动程序?3 消息的基本分类是什么?4 如何创建单文档类型程序?5 说明单文档程序创建时所生成的代码?6 说明什么是应用程序类、框架窗口类、视图类、文档类?7 在MFC程序中,消息由什么对象接收?8 创建消息映射如何操作?操作结果是什么?2.1 W
2、indows应用程序概述2.1.1 窗口Windows应用程序运行于Windows操作系统上,与DOS应用程序有着本质的区别。所有的Windows应用程序都是由消息驱动的,消息处理是所有Windows应用程序的核心。窗口是用户界面中最重要的部分。它是屏幕上与一个应用程序相对应的矩形区域,是用户与产生该窗口的应用程序之间的可视界面。窗口的应用特点:(1)窗口为用户提供了图形方式的操作界面,Windows程序通过窗口完成输入输出工作。(2)窗口能够接收外部消息,从而能够感知系统或用户的动作。编写窗口程序的方法(1)直接调用WinAPI函数(2)使用MFC类创建窗口对象(3)使用MFC应用资源模板创
3、建基于窗口的程序(本课程)无论采用什么方法,消息处理都是编程的核心问题2.1.2 消息和事件Windows消息系统原理类似于“手机短信”。什么是消息?消息是一组有固定格式的数据,用于在“系统”、“进程”、“窗口”之间传递信息,通知某个事件的产生。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。(1)消息在“系统”、“进程”、“窗口”之间相互传递。 (2)Windows消息包括6个数据项,封装为一个结构,称为消息结构:typedef struct tagMSG HWND hwnd; /窗口句柄,即传送目的 UINT message; /消息编号,常量标
4、识符 WPARAM wParam;/ 32位消息的特定附加信息 LPARAM lParam; / 32位消息的特定附加信息 DWORD time; /消息创建时的时间 POINT pt; /消息创建时的鼠标位置MSG;(3)解释messagemessage即信息的具体内容,是长整型(32bit)。每个message都代表一件事情,一种情况,由windows系统进行规定。Windows规定了01024的具体含义,例如:WM_MOVE = $0003 /移动一个窗口WM_KEYDOWN = $0100 /按下一个键WM_LBUTTONDOWN= $0201 /按下鼠标左键WM_QUERYENDSE
5、SSION= $0011 /关机 消息传输过程消息队列:Windows为每个程序建立了一个表格,存放属于该程序的消息。称为消息队列。消息由系统分到各程序的消息队列,由程序自己取走。程序收到消息后如何做,是编程者的事情。消息循环模型Windows中的应用程序内部,都存在一个循环代码段,负责反复地检查消息队列,识别收到的消息,调用映射函数。在MFC模板程序中,消息循环由窗口内部函数自动处理。消息映射消息映射是应用程序中,消息与函数的一一对应关系。应用程序为了响应、处理消息,必须有与某个消息对应的函数,称为消息映射函数。当程序接收到该消息时,由消息循环调用映射函数,响应消息,从而使程序的运行与用户操
6、作一致。事件驱动程序模型消息机制使得windows程序称为事件驱动模式,即程序处于等待状态,根据用户的操作(事件),决定执行哪项功能。与结构化程序是不同的。2.1.3 基本数据类型Windows编程中常用的基本数据类型的别名。2.1.4 句柄句柄是Windows编程的基础,所谓句柄就是Windows使用的一种无重复整数。句柄主要用来标识应用程序中的一个对象,如窗口、实例、菜单、内存、输出设备、控制或文件等。2.2 MFC应用程序框架2.2.1 创建MFC应用程序框架 编写一个SDI单文档应用程序Li2_1,程序运行后,通过消息框输出“这是一个单文档应用程序!”的提示信息。(1) 选择File菜
7、单下的New菜单项,系统弹出New对话框。 (2) MFC AppWizard-Step 1对话框主要用于选择应用程序类型。AppWizard可以创建3种类型的应用程序框架。(3)MFC AppWizard-Step 2 of 6对话框中主要用于选择应用程序所支持数据库方式。后面的步骤可以略,直接按结束按钮(Finish)(8)打开项目工作区中的ClassView类视图,单击CLi2_1View类左边的“+”展开视图类,双击打开OnDraw()函数,并添加代码。void CLi2_1View:OnDraw(CDC* pDC)CLi2_1Doc* pDoc = GetDocument();ASS
8、ERT_VALID(pDoc);/ TODO: add draw code for native data hereMessageBox(这是一个单文档应用程序!,消息框, MB_ICONEXCLAMATION|MB_OKCANCEL);(9) 选择Build菜单中的Build Li2_1.exe菜单项,对工程进行编译和链接,生成可执行文件。再选择Build菜单中的Execute Li2_1.exe菜单命令运行程序。特点:在使用向导建立程序时,向导预先生成了部分代码,这些代码建立了程序的基本框架。我们接下来要做的是,爱框架中加入自己的代码,实现所需要的功能。需要3方面的知识:(1)能概略地阅读
9、生成的程序,理解基本框架的组成(2)编写程序的基本C+语法知识(3)MFC类库的常用“类”和“函数”,如CString类。2.2.2 MFC应用程序框架结构类什么是MFC?为VC+编程环境所提供的类库,主要是对WinAPI进行重新封装。总共大约160个类。简单地说,每个MFC类都包括了一些函数,函数放到类中,符合C+编程方法。这些函数,必须通过类定义对象才能使用。一个MFC应用程序并不直接操作上述类,而是以上述类为基类派生新的类,从而构建Windows应用程序的基本框架。例如,应用程序Li2_1中的类与这些基类的派生关系:2.2.3 MFC应用程序分析(单文档模板)1. 单文档程序结构分析假设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用程序 概述

限制150内