消息,就是指Windows發出的一個通知,告訴應用程序某個事情發生了。例如,單擊鼠標、改變窗口尺寸、按下鍵盤上的一個鍵都會使Windows發送一個消息給應用程序。
消息本身是作為一個記錄傳遞給應用程序的,這個記錄中包含了消息的類型以及其他信息。例如,對於單擊鼠標所產生的消息來說,這個記錄中包含了單擊鼠標時的坐標。這個記錄類型叫做TMsg,它在單元中是這樣聲明的:
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都是3 2位的,因此,它們之間可以相互轉換。
WM_NULL = $0000;
WM_CREATE = $0001; 應用程序創建一個窗口
WM_DESTROY = $0002; 一個窗口被銷毀
WM_MOVE = $0003; 移動一個窗口
WM_SIZE = $0005; 改變一個窗口的大小
WM_ACTIVATE = $0006; 一個窗口被激活或失去激活狀態;