- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章应用程序基本结构与运行方式
第二章 应用程序基本结构与运行方式
管理模式
窗口的构造由应用程序完成,但窗口的管理由应用程序和Windows系统共同协作实施。
事件驱动模式
事件驱动应用程序在设计过程中围绕事件进行,并通过事件产生的消 息驱动相应的处理函数(过程)完成操作过程。
所谓消息是描述事件发生的信息。例如:鼠标键按下或者键盘产生键编码输出的信息。
因此这种类型的程序的执行顺序取决于事件发生的顺序,或者说由消息的产生决定。
2.1 消息
2.1.1组织结构
Windows消息由消息号和参数两个部分组成。
1.消息号
Windows操作系统通过32位整数标识一条Windows消息,称为消息号。Windows消息的消息号具有以下三个特点:
唯一性
唯一性是指对于Windows操作系统中的每一条消息存在且只存在一个消息号与之相对应。
直观性
消息号在形式上表现为消息名。例如:WM_LBUTTONDOWN直观地反映了单击所产生的消息。
(3) 可自定义
Windows系统定义了一系列的消息号和消息名,程序员可以使用这些系统消息,也可以使用自定义的窗口的消息。其形式如下:
#define 消息名 消息号
在消息号的定义中通常采用如下形式:
WM_USER+n
例如消息名为“MESSAGE_1”和“MESSAGE_2”可采用如下形式:
#define MESSAGE_1 WM_USER+1
#define MESSAGE_2 WM_USER+2
2.参数
Windows的消息具有以下两参数:
字参数(wParam)
长参数(lParam)
字参数和长参数都是32位整数,用于提供消息号的附带信息,是消息传递过程中的参数的载体。
分类
宏观上按消息的产生可将消息分为以下四种:
外界输入事件产生的消息。
Windows系统向应用程序发送的消息。
应用程序之间发送的消息。
其他。
根据消息产生的具体对象,可进一步将消息分为:
窗口管理消息。
初始化消息。
输入消息。
系统消息。
剪贴板消息。
系统信息消息。
控件处理消息。
控件通知消息。
滚动条消息。
非用户区消息。
MDI消息。
DDE消息。
应用程序自定义的消息。
常用消息
WM_LBUTTONDOWN
产生:单击
参数:
wParam:包含一个整数值,以标识鼠标键按下的状态。
lParam:低位字包含当前光标的X坐标,高字节包含当前光标的Y坐标。
相似的消息有:
WM_LBUTTONUP:放开鼠标左键时产生。
WM_RBUTTONDOWN:单击时产生。
WM_RBUTTONUP:放开鼠标右键时产生。
WM_LBUTTONDBLCLK:双击时产生。
WM_RBUTTONDBLCLK:双击鼠标右键时产生。
WM_KEYDOWN
产生:按下一个非系统键时产生。
参数:
wParam:按下虚拟键的键码。
lParam:按键的重复次数,扫描码,转移代码,先前键的状态等信息。
相似的消息有:
WM_KEYUP: 放开非系统键时产生。
WM_CHAR
产生:按下一个非系统键时产生。
参数:
wParam:按键的ASCII码。
lParam:按键的重复次数,扫描码,转移代码,先前键的状态等信息。
WM_CREATE
产生:由CreateWindow函数发出。
参数:
wParam:未用。
lParam:包含一个指向CREATESTRUCT数据结构指针,该结构是传递给CreateWindow函数的参数的副本。
WM_CLOSE
产生:关闭当前窗口时产生。
参数:
wParam:未用。
lParam:未用。
WM_DESTROY
产生:消除窗口时由Destroyindow函数发出。
参数:
wParam:未用。
lParam:未用。
WM_QUIT
产生:退出应用程序时由PostQuitMessage函数发出。
参数:
wParam:含有退出代码,退出代码标识应用程序退出运行时的有关信息。
lParam:未用。
消息队列
应用程序对消息的管理通过消息对队实现。如图所示:
2.2 应用程序的基本框架
包括以下三个部分:
Windows数据结构和数据类型。
入口函数WinMain。
窗口函数。
2.2.1 数据结构和数据类型
1.数据类型
常用数据类型及说明如下:
数据类型 说明 BYTE 8位无符号整数 WORD 16位无符号整数 LONG 32位有符号整数 DWORD 32位无符号整数 HANDLE 句柄 UINT 32位无符号整数 FLOAT 32位有符号浮点数 BOOL 布尔值 LPTSTR 指向字符串的32位指
文档评论(0)