认识windows消息机制和Spy++工具

windows消息

windows消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。
例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。
消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。
这个记录类型叫做TMsg,是一个C语言结构体;


消息中有什么?

     hwnd 32位的窗口句柄。
     message用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量。消息标识符以常量命名的方式指出消息的含义。
     当窗口过程接收到消息之后,他就会使用消息标识符来决定如何处理消息。例如、WM_PAINT告诉窗口过程窗体客户区被改变了需要重绘。
     符号常量指定系统消息属于的类别,其前缀指明了处理解释消息的窗体的类型。
     wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。
     lParam 通常是一个指向内存中数据的指针。由于WParam、lParam和Pointer都是32位的,因此,它们之间可以相互转换。

消息定义

在C语言中的定义是:
typedef struct Msg
{
HWND hwnd; / /窗口句柄
UINT message; / /消息常量标识符
WPARAM wParam; // 32位消息的特定附加信息
LPARAM lParam; // 32位消息的特定附加信息
DWORD time; / /消息创建时的时间
TPoint pt; / /消息创建时的鼠标位置
} TMsg;


下面使用Spy++工具来查看Windows消息;此工具VS自带,也可下载;

打开spy++,找到记事本窗口;此工具会列出所有窗口;很多窗口在桌面并不能直接看到;

右击记事本窗口,选择 消息;打开此窗口的显示消息的窗口;在记事本中随便输入几个字母;可看到产生了大量的消息;由Windows发送给记事本窗口;

WM打头的是窗口消息;EM打头的是编辑控件消息;分分钟就产生大量消息;这是系统的内部运作;

看一下Spy++工具;它的图标是一个黑客的形象;

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/87925392
今日推荐