Window 消息大全使用详解
消息,就是指 Windows 发出的一个通知,告诉应用程序某个事情发生了。例如,单击
鼠标、改变窗口尺寸、按下键盘上的一个键都会使 Windows 发送一个消息给应用程序。
消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。
例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类
型叫做 TMsg,它在 Windows 单元中是这样声明的:
type
TMsg = packed record
hwnd: HWND; //窗口句柄
message: UINT;//消息常量标识符
wParam: WPARAM ;// 32 位消息的特定附加信息
lParam: LPARAM ;// 32 位消息的特定附加信息
time: DWORD;//消息创建时的时间
pt: TPoint; //消息创建时的鼠标位置
end ;
消息中有什么?
是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释:hwnd
32 位的窗口句柄。窗口可以是任何类型的屏幕对象,因为 Win32 能够维护大多数可
视对象的句柄(窗口、对话框、按钮、编辑框等)。message 用于区别其他消息的常量值,这
些常量可以是 Windows 单元中预定义的常量,也
可以是自定义的常量。
wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。
lParam 通常是一个指向内存中数据的指针。由于 WParam、lParam 和 Pointer 都是 32 位的,
因此,它们之间可以相互转换。
WM_NULL =$0000 //
WM_CREATE =$0001 //应用程序创建一个窗口
WM_DESTROY = $0002 //一个窗口被销毁
WM_MOVE = $0003 //移动一个窗口
WM_SIZE= $0005 //改变一个窗口的大小
WM_ACTIVATE= $0006 //一个窗口被激活或失去激活状态;
WM_SETFOCUS= $0007 //获得焦点后
WM_KILLFOCUS= $0008 //失去焦点
WM_ENABLE= $000A //改变 enable 状态
WM_SETREDRAW= $000B //设置窗口是否能重画
WM_SETTEXT= $000C //应用程序发送此消息来设置一个窗口的文本
WM_GETTEXT = $000D //应用程序发送此消息来复制对应窗口的文本到缓冲区
WM_GETTEXTLENGTH = $000E //得到与一个窗口有关的文本的长度(不包含空字
符)
WM_PAINT = $000F //要求一个窗口重画自己
评论3