欢迎来到天天文库
浏览记录
ID:47154133
大小:2.79 MB
页数:11页
时间:2019-08-13
《2、MFC应用程序概述》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第2章MFC应用程序概述2.1Windows应用程序概述2.2MFC应用程序框架2.2.1创建MFC应用程序2.2.3MFC单文档程序组成2.3消息映射与消息处理2.3.1消息类别1.2.2类向导2.5应用实例1Windows窗口具有哪些应用特点?2说明什么是消息?消息结构?消息队列?消息循环?消息映射?事件驱动程序?3消息的基本分类是什么?4如何创建单文档类型程序?5说明单文档程序创建时所生成的代码?6说明什么是应用程序类、框架窗口类、视图类、文档类?7在MFC程序中,消息由什么对象接收?8创建消息映射如何操作?操作结果是什么?2.1Windows应用程序概述
2、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个数据项,封装为一个结构,称为消息结构:typedefstructtagMSG{HWNDhwnd;//窗口句柄,即传送目的UINTmessag
4、e;//消息编号,常量标识符WPARAMwParam;//32位消息的特定附加信息LPARAMlParam;//32位消息的特定附加信息DWORDtime;//消息创建时的时间POINTpt;//消息创建时的鼠标位置}MSG;(3)解释messagemessage即信息的具体内容,是长整型(32bit)。每个message都代表一件事情,一种情况,由windows系统进行规定。Windows规定了0~1024的具体含义,例如:WM_MOVE=$0003//移动一个窗口WM_KEYDOWN=$0100//按下一个键WM_LBUTTONDOWN=$0201//按下鼠
5、标左键WM_QUERYENDSESSION=$0011//关机消息传输过程消息队列:Windows为每个程序建立了一个表格,存放属于该程序的消息。称为消息队列。消息由系统分到各程序的消息队列,由程序自己取走。程序收到消息后如何做,是编程者的事情。消息循环模型Windows中的应用程序内部,都存在一个循环代码段,负责反复地检查消息队列,识别收到的消息,调用映射函数。在MFC模板程序中,消息循环由窗口内部函数自动处理。消息映射消息映射是应用程序中,消息与函数的一一对应关系。应用程序为了响应、处理消息,必须有与某个消息对应的函数,称为消息映射函数。当程序接收到该消息时
6、,由消息循环调用映射函数,响应消息,从而使程序的运行与用户操作一致。事件驱动程序模型消息机制使得windows程序称为事件驱动模式,即程序处于等待状态,根据用户的操作(事件),决定执行哪项功能。与结构化程序是不同的。2.1.3基本数据类型Windows编程中常用的基本数据类型的别名。2.1.4句柄句柄是Windows编程的基础,所谓句柄就是Windows使用的一种无重复整数。句柄主要用来标识应用程序中的一个对象,如窗口、实例、菜单、内存、输出设备、控制或文件等。2.2MFC应用程序框架2.2.1创建MFC应用程序框架编写一个SDI单文档应用程序Li2_1,程序运
7、行后,通过消息框输出“这是一个单文档应用程序!”的提示信息。(1)选择File菜单下的New菜单项,系统弹出New对话框。(2)MFCAppWizard-Step1对话框主要用于选择应用程序类型。AppWizard可以创建3种类型的应用程序框架。(3)MFCAppWizard-Step2of6对话框中主要用于选择应用程序所支持数据库方式。后面的步骤可以略,直接按结束按钮(Finish)(8)打开项目工作区中的ClassView类视图,单击CLi2_1View类左边的“+”展开视图类,双击打开OnDraw()函数,并添加代码。voidCLi2_1View::OnD
8、raw(CDC*pDC)
此文档下载收益归作者所有