[Visual Studio C++] [MFC] ( WPARAM wParam,LPARAM lParam) 資訊講解
一.前言
在Win32中,(wParam ,lParam)是用來傳遞訊息資料的最常用的手段. 比如,
- 對按鍵訊息來說,滑鼠的X和Y的座標被壓縮排lParam中 。
- 對MFC來說,訊息可以用多樣的型別引數來傳遞。
- 對使用者自定義訊息來說,只能用wParam和lParam來傳遞。
二.講解
windows的訊息具有以下兩個引數:
(1)字引數(wParam)
(2)長引數(lParam)
字引數和長引數都是32位整數,用於提供訊息的附帶訊息,是訊息傳遞過程中引數的載體。附加資訊的訊息號取決於訊息號。
常用(wParam ,lParam)資訊表
訊息 |
說明 |
wParam |
lParam |
WM_PAINT |
低位是客戶區的寬 高位是客戶區的高 |
||
WM_VSCROLL WM_HSCROLL |
視窗滾動條訊息 |
低位指出了滑鼠對滾動條的操作 |
|
WM_SYSKEYDOWN WM_SYSKEYUP WM_KEYUP WM_KEYDOWN |
擊鍵訊息 |
虛擬鍵程式碼 |
分為6個域,有重複計數、環境程式碼、鍵的先前狀態等 |
WM_CHAR WM_DEADCHAR WM_SYSCHAR WM_SYSDEADCHAR |
字元訊息 |
ANSI或Unicode字元程式碼 |
分為6個域,有重複計數、環境程式碼、鍵的先前狀態等 |
WM_LBUTTONDOWN WM_LBUTTONUP WM_RBUTTONDOWN WM_RBUTTONUP WM_MBUTTONDOWN WM_MBUTTONUP |
客戶區滑鼠訊息 |
指示滑鼠鍵及Shift和Ctrl鍵的狀態 |
滑鼠的客戶區座標 |
非客戶區滑鼠訊息 |
指明移動或者單擊滑鼠鍵的非客戶區位置,以HT開頭 |
滑鼠的螢幕座標 |
|
WM_MOUSEWHEEL |
滑鼠輪滾動訊息 |
低位表明滑鼠鍵和Shift與Ctrl鍵的狀態 高位指出了滾輪導致螢幕滾動幾行 |
滑鼠的螢幕位置 |
WM_TIMER |
計時器訊息 |
計時器的ID值 |
0 |
WM_COMMAND |
按鈕 |
低位是子視窗ID,高位是通知碼 |
子視窗控制代碼 |
WM_SETFOCUS |
焦點訊息 |
正在失去焦點的視窗的控制代碼 |
|
WM_KILLFOCUS |
焦點訊息 |
即將接收輸入焦點的視窗的控制代碼 |
|
WM_COMMAND |
編輯控制 |
低位是子視窗ID,高位是通知碼 |
子視窗控制代碼 |
WM_COMMAND |
列表框 |
低位是子視窗ID,高位是通知碼 |
子視窗控制代碼 |
WM_INITMENU |
主選單控制代碼 |
0 |
|
WM_MENUSELECT |
選單跟蹤訊息 |
低位是選中項選單的ID或者彈出式選單的控制代碼,高位是選擇標識 |
選中項的選單控制代碼 |
WM_INITMENUPOPUP |
準備顯示一個彈出式選單時產生 |
彈出式選單的控制代碼 |
低位是彈出式選單的索引,如果該選單是系統選單,那麼高位是1,否則為0.
|
WM_COMMAND |
選中選單後產生 |
低位是擊中選單的ID 高位是0 |
0 |
WM_SYSCOMMAND |
使用者從系統選單中選擇一個啟用的選單項 |
選單的ID |
0如果該訊息是由按滑鼠產生的,那麼是滑鼠的螢幕座標。 |
WM_COMMAND |
加速鍵訊息 |
低位是加速鍵ID 高位是1 |
0 |