w indow s 消息处理机制 消息,就是指Windows 发出的一个通知,告诉应用程序某个事情发生了
例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使 Windows 发送一个消息给应用程序
消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息
例如, 对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标
这个记录类型叫做 TMsg,它 在 Windows 单元中是这样声明的: type TMsg = packed record hwnd: HWND; / /窗口句柄 message: UINT; / /消息常量标识符 wParam: WPARAM ; // 32 位消息的特定附加信息 lParam: LPARAM ; // 32 位消息的特定附加信息 time: DWORD; / /消息创建时的时间 pt: TPoint; / /消息创建时的鼠标位置 e n d ; 消息中有什么
是否觉得一个消息记录中的信息像希腊语一样
如果是这样,那么看一看下面的解释: hwnd 32 位的窗口句柄
窗口可以是任何类型的屏幕对象,因为 Win32 能够维护大多数可 视对象的句柄(窗口、对话框、按钮、编辑框等)
message 用于区别其他消息的常量值,这些常量可以是Windows 单元中预定义的常量,也可以是自定义的常量
wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄
lParam 通常是一个指向内存中数据的指针
由于 WParam、lParam 和 Pointer都是32 位的,因此,它们之间可以相互转换
Windows 的消息系统是由 3 个部分组成的: • 消息队列
Windows 能够为所有的应用程序维护一个消息队列
应用程序必须从消息队列中获取 消息,然后分派给某个窗口
• 消息循环
通过这个循环