WPARAM和LPARAM的含義

2021-07-04 19:23:47 字數 1776 閱讀 9242

具體的訊息表示

wm_paint訊息,loword(lparam)是客戶區的寬,hiword(lparam)是客戶區的高

滾動條wm_vscroll或wm_hscroll訊息,loword(wparam)指出了滑鼠對滾動條的操作。比如上、下、左、右、翻頁、移動等。

擊鍵訊息,有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字元**

客戶區滑鼠訊息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 鍵。

非客戶區訊息,wparam引數指明移動或者單擊滑鼠鍵的非客戶區位置,以ht開頭,lparam引數低位指出了滑鼠所在螢幕座標的x座標,高位指出了滑鼠所在螢幕座標的y座標。

滑鼠輪滾動訊息,wm_mousewheel訊息,lparam將獲得滑鼠的螢幕位置(座標),wparam引數的低位表明滑鼠鍵和shift與ctrl 鍵的狀態。wparam高位有乙個「delta」值,該值可正可負,指出了滾輪導致螢幕滾動幾行,120表示向上3行。

計時器訊息wm_timer,wparam引數等於計時器的id值,lparam為0

按鈕子視窗的wm_command訊息,wparam引數的低位是子視窗id,高位是通知碼, lparam引數是接收訊息的子視窗的控制代碼。

焦點訊息,對於正在失去焦點的視窗,會收到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.

選單訊息2,wm_menuselect,選單跟蹤訊息,指標移到選單的某一些,就會傳送這個訊息給視窗過程,其wparam引數的低位是選中項選單的 id或者彈出式選單的控制代碼,高位是選擇標識,lparam引數是包含選中項的選單控制代碼。

選單訊息3,wm_initmenupopup,準備顯示乙個彈出式選單時產生的訊息,wparam引數是彈出式選單的控制代碼,lparam的低位是彈出式選單的索引,如果該選單是系統選單,那麼高位是1,否則為0.

選單訊息4,wm_command,選中選單後產生,wparam低位是擊中選單的id,高位是0,lparam引數也是0

選單訊息5,wm_syscommand,表示使用者從系統選單中選擇乙個啟用的選單項,其wparam引數是選單的id, lparam為0.如果該訊息是由按滑鼠產生的,那麼lparam引數是滑鼠的螢幕座標。

加速鍵訊息,wm_command訊息,wparam低位是加速鍵id,高位是1, lparam是0.

19.控制項著色訊息,wm_ctlcolorbtn訊息,wparam是按鈕的裝置描述表控制代碼,lparam是按鈕的視窗控制代碼。

使用WPARAM或LPARAM 傳遞指標

在vc 中的定義 typedef uint ptr wparam typedef long ptr lparam typedef w64 unsigned int uint ptr,puint ptr typedef w64 long long ptr,plong ptr 可見wparam 是無符3...

WPARAM與LPARAM的高位與低位問題

在寫訊息處理函式時,常會遇到wparam與lparam這兩個引數,這兩個引數都是dword型別的,也就是雙字或四位元組或32位長度的。有時想取這些引數裡的高位字或低位字,用什麼方法呢?查msdn說有兩個巨集函式可用 取高位字 word hiword dword dwvalue 取低位字 word l...

鍵盤訊息中的LParam引數定義

0 15位 指定當前訊息的重複次數。其值就是使用者按下該鍵後自動重複的次數,但是重複次數不累積 16 23位 指定其掃瞄碼,其值依賴於oem廠商 24位 指定該按鍵是否為擴充套件按鍵,所謂擴充套件按鍵就是ctrl,alt之類的,如果是擴充套件按鍵,其值為1,否則為0 25 28位 保留字段,暫時不可...