网站大量收购闲置独家精品文档,联系QQ:2885784924

第02节 WINDOWS应用程序.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 Windows应用程序 的类封装 本章主要内容: 模仿MFC用C++类对Windows主函数进行封装 应用程序类CWinApp及其派生类 窗口类CFrameWnd及其派生类 CCmdTarget类 MFC消息映射 回顾: Windows 应用程序结构 至少包含两个函数 WinMain ( ) : 必有且仅有一个 窗口函数 : 每个窗口对应一个窗口函数,以响应该窗口的消息 WinMain( )函数需完成的功能 定义窗口类 注册窗口类 建立窗口类的窗口 显示窗口 运行消息循环 2.1? 应用程序主函数 的C++类封装 2.1? 应用程序主函数 的C++类封装 2.2? 派生类的应用 利用C++类的继承性和多态性,程序员可以在已有的类的基础上派生自己的类。这样,程序员就可以在派生类中添加自己需要的成员,同时也可以对基类的函数进行重新定义(重写),以满足不同应用程序的需要。 2.2.1 应用程序类的派生类 获得应用程序对象指针函数AfxGetApp() 注意:在CWinApp的构造函数 主函数 2.3? 窗口函数的封装 ——消息映射 Windows系统是一个事件驱动、消息循环的操作系统,消息是应用程序与操作系统交互的手段。消息的产生来源于系统事件和用户事件。消息处理是Windows应用程序的核心。 回顾:消息结构 在Windows中,用一个结构类型表示消息的常量值和与该消息相关的其他信息,它的具体定义如下: ? typedef struct tagMSG {// 消息结构 HWND?? hwnd;??? ? UINT?? message; WPARAM wParam; LPARAM lParam; DWORD? time; POINT? pt; } MSG; 消息分类 从不同的角度,有如下几种分类方式。 1、从消息的发送途径上看,可以分为队列消息和非队列消息。 2、从消息的来源来看,可以分为系统消息和自定义消息。 3、从对消息的处理上看,可以分为窗口消息、命令消息和控件通知。 队列消息和非队列消息 Windows为当前运行的每个Windows程序维护一个“消息队列”。当通过鼠标或者键盘发生输入事件后,Windows将事件转换为一个“消息”,并将消息放入程序的消息队列中。 队列消息是指由Windows放入程序的消息队列中的消息,在程序消息循环中,队列消息被重新传回并分配给窗口过程。 队列消息大都是用户输入的结果,如击键(WM_KEYDOWN和WM_KEYUP消息)、字符(WM_CHAR)消息、移动鼠标(WM_MOUSEMOVE消息)以及单击鼠标(WM_ LBUTTONDOWN和WM_LBUTTONUP等消息)等。队列消息还包括时钟消息(WM_ TIMER)、重画消息(WM_PAINT)和退出消息(WM_QUIT)等。 非队列消息是指在Windows调用窗口时直接传送给窗口过程的消息。 大部分消息都是非队列消息。此类消息大部分来自特定的Windows函数,如当调用UpdateWindow时,Windows将给调用此函数窗口的窗口过程发送WM_PAINT;当调用DestroyWindow时,Windows将给调用此函数窗口的窗口过程发送WM_DESTROY等。 总之:队列消息被“发送”给消息队列,而非队列消息则“发送”给窗口过程。 系统消息和自定义消息 Windows消息是预定义的一些UINT常量值,它对系统本身用到的消息进行了定义,为了实现额外的消息,系统为开发人员预留了消息定义的接口,这样,当需要使用系统以外的消息时,可以使用该接口进行定义自己的消息。 系统消息ID的范围是从0~WM_USER-1,或0X80000~0XBFFFF;应用程序消息从WM_USER(0X0400)~0X7FFF,或0XC000~0XFFFF;WM_USER~0X7FFF范围的消息由应用程序自己使用;0XC000~0XFFFF范围的消息用来和其他应用程序通信,为了保证ID的唯一性,使用::RegisterWindowMessage来获取该范围的消息ID。 窗口消息 窗口消息(Window Message)是由操作系统和控制其他窗口的窗口所使用的消息,它一般与窗口的内部运作有关,如创建窗口、绘制窗口和销毁窗口等。通常,消息是从系统发送到窗口,或从窗口发送到窗口。此类消息的参数Message、wParam和lParam的格式如下: 命令消息 命令消息是一种特殊的窗口消息,它从一个窗口发送到另

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档