(Windows编程)Windows的消息机制(消息的结构、类型)

来源:互联网 发布:udid定制后台源码 编辑:程序博客网 时间:2024/05/22 15:58

       Windows应用程序是以消息为基础、以事件为驱动的应用程序。当应用程序在运行时,会不断地等待操作系统发送给自身的消息(while循环),然后根据不同的消息进行相应的处理。这里的消息实际上就是一种数据结构,包含窗口句柄、消息标识和一些辅助信息。


消息概述:

Windows应用程序是基于消息的程序设计模式。例如,当用户在窗口上移动鼠标时,操作系统就会发现这一事件,并将该事件封装成一个消息,发送到消息队列中。应用程序从消息队列中依次取出消息,并将其回传给操作系统,由操作系统调用“窗口函数”对消息进行处理。


消息的结构:

Windows定义了一个消息结构MSG。

typedef struct tagMSG {
  HWND hwnd;                      //窗口句柄(窗口句柄起到标识对象的作用)
  UINT message;                 //消息标识符,确定具体是哪个消息
  WPARAM wParam;            //消息的附加信息,含义依赖于具体的消息。
  LPARAM lParam;               //消息的附加信息,含义依赖于具体的消息。
  DWORD time;                    //消息被放入消息队列的时间
  POINT pt;                           //鼠标位置
} MSG;

消息的类型:

Windows系统将消息分为两大类,一类是系统预定义的消息,一类是用户自定义的消息。系统消息由前缀和后缀两部分组成。前缀表示处理该消息的窗口类别,后缀描述消息的内容。例如,WM_CLOSE中,“WM”表示处理该消息的窗口为一般窗口,“CLOSE”表示窗口关闭。下表整理了一些常用的消息系统前缀:


除了系统定义的消息以外,用户还可以自定义消息。系统保留了0x0000-0x03FF的消息值,应用程序不能使用。用户可以使用0x0400~0x7FFF(WM_USER)的消息值。调用RegisterWindowMessage函数返回一个系统范围内唯一的消息标识符。



0 0
原创粉丝点击