windows消息处理机制的简介
消息本身是作为一个记录传递给应用程序的,这个记录(一般在 C/C++/汇编 中称为“结构体”)中包含了消息的类型以及其他信息。例如,对单击鼠标所产生的消息来说,这个记录(结构体)中包含了单击鼠标的消息号(WM_LBUTTONDOWN)、单击鼠标时的坐标(由X,Y值连接而成的一个32位整数)。这个记录类型叫做TMsg。
在Delphi的Windows单元中是这样声明的:
type
TMsg = packed record
hwnd: HWND; / /窗口句柄
message: UINT; / /消息常量标识符
wParam: WPARAM ; // 16位消息的特定附加信息
lParam: LPARAM ; // 32位消息的特定附加信息
time: DWORD; / /消息创建时的时间
pt: TPoint; / /消息创建时的鼠标位置
end ;
其中TPoint定义是:
TPoint= record
x:integer;
y:integer;
end;
在C语言中的定义是:
typedef struct Msg
{
HWND hwnd; / /窗口句柄
UINT message; / /消息常量标识符
WPARAM wParam; // 32位消息的特定附加信息
LPARAM lParam; // 32位消息的特定附加信息
DWORD time; / /消息创建时的时间
TPoint pt; / /消息创建时的鼠标位置
} TMsg;
typedef struct TPoint
{
int x;
int y;
}TPoint;