MFC应用程序概述

MFC应用程序概述

ID:41059287

大小:302.51 KB

页数:73页

时间:2019-08-15

MFC应用程序概述_第1页
MFC应用程序概述_第2页
MFC应用程序概述_第3页
MFC应用程序概述_第4页
MFC应用程序概述_第5页
资源描述:

《MFC应用程序概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章MFC应用程序概述MFC应用程序概述Windows应用程序概述MFC应用程序框架文档/视图结构消息映射3.1Windows应用程序概述3.1.1窗口编程基础窗口消息和消息队列事件驱动的程序设计资源管理1.窗口(Window)窗口是应用程序与用户交互的界面窗口元素以对象方式组织一个应用程序由多个窗口组成程序运行过程是窗口之间,窗口与系统,窗口与用户之间交换并处理数据的过程。2.窗口的界面元素垂直滚动条标题栏菜单栏关闭按钮最小化按钮最大化按钮水平滚动条窗口边界客户区消息(Message)和消息队列消息用于通

2、知某个事件的产生消息机制MSG消息的类型消息(Message)和消息队列Windows应用程序是利用消息与其他Windows应用程序和操作系统进行信息交换的。消息的作用是通知一个应用程序某个确定的事件的产生。应用程序对该事件做出响应,即编写相应的消息处理代码。举例:按下鼠标左键时,系统会产生WM_LBUTTONDOWN消息消息(Message)和消息队列Windows应用程序接受系统队列传递过来的消息的步骤:(1)每个Windows应用程序都有一个WinMain()函数,在该函数中会定义一个窗口句柄,当应用程

3、序启动时,会使该窗口句柄注册,操作系统使用窗口句柄与Windows应用程序通信。消息(Message)和消息队列(2)Windows应用程序创建一个或多个窗口,每个窗口都有一个窗口处理函数(WndProc),负责窗口显示和响应用户输入。(3)消息映射(MessageMapping):负责从消息队列中取消息,并送回窗口,由窗口处理函数选择合适的消息处理函数响应消息。派送消息消息源1消息源2消息源n否程序开始程序结束捕获消息处理消息是否退出消息是···消息机制消息机制是Windows应用程序运行的核心工作机制,用

4、如下结构体MSG表示:typedefstructtagMSG{HWNDhwnd;UINTmessage;WPARAMwParam;LPARAMlParam;DWORDtime;POINTpt;}MSG;MSG结构体成员说明:(1)hwnd接收消息的窗口句柄。(2)Message消息值,每个windows消息都有一个消息值,该值由windows.h头文件的宏定义来标识。(3)wParam和lParam包含有关消息的附加信息,它随消息的不同而不同。(4)Time指定消息送至队列的时间界限。(5)pt指定消息发送时

5、屏幕光标的位置,结构如下:typedefstructtagPOINT{LONGx;LONGy;POINT;}消息的类型1.输入消息由键盘和鼠标操作产生输入消息。这类消息首先放在系统消息队列中,后由Windows操作系统将他们放到应用程序消息队列中,由应用程序处理消息。2.控件消息用户操作窗口对象时产生控件消息,这类消息一般不进入应用程序消息队列,而直接发送到控件对象所属的对话框窗口消息的类型3.系统消息对程序化的事件或系统时钟中断做出的放映。一类例如DDE(动态数据交换消息)要通过Windows的系统消息队列

6、,送入应用程序的消息队列,另一类直接送入应用程序的消息队列,例如创建窗口消息。4.用户消息是程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分做内部处理。3.事件驱动的程序设计Windows操作系统下的Windows应用程序采用事件驱动的程序设计,与Dos操作系统下面向过程有明显不同。事件驱动的程序的逻辑顺序是按事件的产生而决定的。事件的产生不是预先定义的,有着随机性。3.事件驱动的程序设计例1、一个应用程序的功能是体操全能比赛项目运动成绩管理,体操全能包括4个项目,在一个驱动中需要如下步骤:(

7、1)输入第一项运动员的成绩。(2)输入第二项运动员的成绩。(3)输入第三项运动员的成绩。(4)输入第四项运动员的成绩。(5)计算每个运动员的总分。(6)按总分排名。开始输入第一项某运动员的成绩输入第二项某运动员的成绩输入第三项某运动员的成绩输入第四项某运动员的成绩计算每个运动员的总分按总分排名结束消息循环事件驱动程序流程示例4.资源管理资源的类型用户自定义资源菜单对话框工具栏系统资源设备上下文画刷画笔字体通信端口3.1.2Windows应用程序组成一个应用程序是如何开始?操作系统创建一个新的进程和一个初始线程

8、应用程序代码装载到内存动态链接库装载到内存(如果需要使用DLL)为数据和堆栈分配物理内存,并映射到虚拟内存应用程序开始执行3.1.2Windows应用程序组成Windows应用程序必须包含两个基本函数:(1)应用程序主函数WinMain()WinMain函数定义了窗口句柄,创建初始化窗口并启动一个消息循环。(2)窗口处理函数WinProc()WinProc函数处理所有从操作系统传递到窗口的消息。每一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。