VC++中WPARAM和LPARAM的使用 阿新 • • 發佈:2019-02-01 1 WM_PAINT訊息,LOWORD(lParam)是客戶區的寬,HIWORD(lParam)是客戶區的高 2 滾動條WM_VSCROLL或WM_HSCROLL訊息,LOWORD(wParam)指出了滑鼠對滾動條的操作。比如上、下、左、右、翻頁、移動等。 3 擊鍵訊息,有WM_SYSKEYDOWN、WM_SYSKEYUP、WM_KEYUP、WM_KEYDOWN,其中wParam是虛擬鍵程式碼,lParam是包含屬於擊鍵的其他資訊。lParam訊息引數分為6個域,有重複計數、環境程式碼、鍵的先前狀態等。 4 字元訊息WM_CHAR、WM_DEADCHAR、WM_SYSCHAR、WM_SYSDEADCHAR,lParam訊息引數跟擊鍵訊息的lParam訊息引數內容相同,wParam引數是ANSI或Unicode字元程式碼 5 客戶區滑鼠訊息WM_LBUTTONDOWN、WM_LBUTTONUP、WM_RBUTTONDOWN、WM_RBUTTONUP、WM_MBUTTONDOWN、WM_MBUTTONUP,lParam引數的低位是滑鼠的客戶區x座標,高位是客戶區y座標。wParam引數是指示滑鼠鍵及Shift和Ctrl鍵的狀態。wParam&MK_SHIFT或MK_CTRL,如果返回TRUE就意味著有按下Shift或Ctrl鍵。 6 非客戶區訊息,wParam引數指明移動或者單擊滑鼠鍵的非客戶區位置,以HT開頭,lParam引數低位指出了滑鼠所在螢幕座標的x座標,高位指出了滑鼠所在螢幕座標的y座標。 7 滑鼠輪滾動訊息,WM_MOUSEWHEEL訊息,lParam將獲得滑鼠的螢幕位置(座標),wParam引數的低位表明滑鼠鍵和Shift與Ctrl鍵的狀態。wParam高位有一個“delta”值,該值可正可負,指出了滾輪導致螢幕滾動幾行,120表示向上3行。 8 計時器訊息WM_TIMER,wParam引數等於計時器的ID值,lParam為0 9 按鈕子視窗的WM_COMMAND訊息,wParam引數的低位是子視窗ID,高位是通知碼, lParam引數是子視窗控制代碼。 10 焦點訊息,對於正在失去焦點的視窗,會收到WM_KILLFOCUS訊息,其wParam引數是即將接收輸入焦點的視窗的控制代碼。對於即將獲取焦點的視窗,會收到WM_SETFOCUS訊息,其wParam引數是正在失去焦點的視窗的控制代碼。 11 編輯控制的WM_COMMAND訊息,wParam引數的低位是子視窗ID,高位是通知碼, lParam引數是子視窗控制代碼。 12 列表框的WM_COMMAND訊息,wParam引數的低位是子視窗ID,高位是通知碼, lParam引數是子視窗控制代碼。 13 選單訊息1,WM_INITMENU,wParam是主選單控制代碼,lParam是0. 14 選單訊息2,WM_MENUSELECT,選單跟蹤訊息,指標移到選單的某一些,就會發送這個訊息給視窗過程,其wParam引數的低位是選中項選單的ID或者彈出式選單的控制代碼,高位是選擇標識,lParam引數是包含選中項的選單控制代碼。 15 選單訊息3,WM_INITMENUPOPUP,準備顯示一個彈出式選單時產生的訊息,wParam引數是彈出式選單的控制代碼,lParam的低位是彈出式選單的索引,如果該選單是系統選單,那麼高位是1,否則為0. 16 選單訊息4,WM_COMMAND,選中選單後產生,wParam低位是擊中選單的ID,高位是0,lParam引數也是0 17 選單訊息5,WM_SYSCOMMAND,表示使用者從系統選單中選擇一個啟用的選單項,其wParam引數是選單的ID, lParam為0.如果該訊息是由按滑鼠產生的,那麼lParam引數是滑鼠的螢幕座標。 18 加速鍵訊息,WM_COMMAND訊息,wParam低位是加速鍵ID,高位是1, lParam是0.