前言
在学习自绘之前,我们首先得了解什么叫消息、子类化。但这些不是本教程的主要,所以在这里我只说一下大概,需要更多这方面的知识请自行查看相关教程。
注意:在本教程里,系统API函数、常量名等,都直接使用英文,并没有进行所谓的汉化,这主要是为了方便大家查询API手册等。也方便大家参考其他编程语言的代码。
windows消息
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg。
消息定义
它在Windows单元中是这样声明的:
type
TMsg = packed record
hwnd: HWND; / /窗口句柄
message: UINT; / /消息常量标识符
wParam: WPARAM ; // 32位消息的特定附加信息
lParam: LPARAM ; // 32位消息的特定附加信息
time: DWORD; / /消息创建时的时间
pt: TPoint; / /消息创建时的鼠标位置
end;
参数说明:
hwnd: 3 2位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄
message :用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义常量。
wParam : 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。
lParam : 通常是一个指向内存中数据的指针。