深入分析Windows消息机制
2011-04-16王光辉
电脑与电信 2011年2期
王光辉
(成都理工大学信息科学与技术学院,四川成都610059)
1.引言
Windows操作系统是基于消息响应机制的被动式系统。Windows应用程序是消息驱动[1]程序,又称事件驱动程序。事件驱动意味着操作系统的每一部分之间以及操作系统与应用程序之间是通过“消息”进行通信联系的。由此可见,消息机制在Windows应用编程[2]的重要性。
2.消息
2.1 消息定义
消息是指Windows发出的一个通知[3],告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口大小、按下键盘上的一个键都会使Windows发送一个消息给应用程序。它可以由硬件、Windows、应用程序共同产生。消息通常分为以下四种:
(1)标准消息:除了WM_COMMAND,所有的以WM开头的消息都是标准消息。如窗口、鼠标移动、窗口大小改变等。程序启动或退出甚至每一段固定的时间都会产生标准Windows消息。
(2)命令消息:来自于菜单、加速键、工具栏按钮的消息,这类消息都以WM_COMMAND形式呈现。
(3)通知消息:由控件产生的消息。按键和鼠标的单击列表框都会产生这类消息[4],这类消息的目的是为了向父窗口(通常是对话框)通知事件的发生,它也是以WM_COMMAND形式呈现的。
(4)用户自定义的消息。
2.2 消息结构
在Windows程序中,消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其它信息,由MSG结构体表示。MSG结构体的定义如下:


在MSG结构中,消息是由一个消息名称(UINT)和两个参数(WPARAM,LPARAM)组成。当用户进行了输入或者窗口的状态发生改变时,系统都会发送消息到某一个窗口。例如,当菜单点中之后会有WM_COMMAND消息发送。……
登录APP查看全文
