天天看點

C#程式員開發WinForm必須知道的 Window 消息大全

不要以為下面的東西隻有C++中才會用到哦!

消息,就是指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位的,是以,它們之間可以互相轉換。

繼續閱讀