鍵盤和滑鼠的訊息引數:
/**********************
lresult callback windowproc(
hwnd hwnd, // handle to window
uint umsg, // wm_keydown
wparam wparam, // virtual-key code
lparam lparam // key data
);wparam 按鍵的虛擬鍵碼,如果是wm_char會被翻譯成asc編碼。滑鼠的則是其他按鍵訊息,比如ctrl。
specifies the virtual-key code of the nonsystem key.
lparam 附帶資訊,滑鼠的常常是滑鼠座標。
specifies the repeat count, scan code, extended-key flag, context code, previous key-state flag, and transition-state flag, as shown in the following table.
***********************/
鍵盤訊息
鍵盤按下,傳遞電訊號,然後翻譯成虛擬鍵碼,可以自己定義。
wm_keydown,wm_keyup,按鍵按下彈起。可以按下多次彈起一次,但是彈起一次必然按下一次。
wm_syskeydown,wm_syskeyup,系統按鍵按下彈起
wm_char,字元訊息,由translatemessage函式翻譯:
1.判斷是不是wm_keydowm訊息
2.通過虛擬鍵碼的設定判斷是不是可見字元按鍵
3.如果是可見字元,則判斷capslock是否按下,判斷大小寫。
滑鼠訊息
wm_lbuttondown,wm_lbuttonup,滑鼠左鍵按下彈起,一般成對出現,比如原視窗按下,移出視窗再彈起,原視窗則接收不到。
wm_rbuttondown,wm_lbuttonup,滑鼠右鍵按下彈起
wm_mousemove,游標移動
wm_lbuttondblclk,wm_rbuttondblclk,滑鼠左右鍵雙擊
wm_mousewheel,滑鼠滾輪,
wparam
低八位:其他按鍵的狀態
高八位:附帶滾輪偏移量,是120的倍數,正負表示方向,正向前,負向後。
lparam:滑鼠座標
雙擊訊息:wm_lbuttondown,wm_lbuttonup,wm_lbuttondown,wm_lbuttondblclk
定時器
定時器:
wm_timer,精度是毫秒,但是準確度不夠,原因是getmessage函式可能會先抓取別的訊息。如果時間要求嚴格最好用執行緒。
訊息引數:
wparam,定時器id
lparam,定時器處理函式的指標
uint_ptr settimer(
hwnd hwnd, // handle to window,定時器屬於的視窗控制代碼。
uint_ptr nidevent, // timer identifier
uint uelapse, // time-out value
timerproc lptimerfunc // timer procedure,定時器處理函式指標,如果為null則去視窗中找處理函式。
);bool killtimer(
hwnd hwnd, // handle to window,控制代碼
uint_ptr uidevent // timer identifier,定時器id
);
win32 鍵盤 滑鼠事件
onkeyuup 事件的語法為 void object1 onkeyup uint nchar,uint nrepcnt,uint nflags onkeydown 事件的語法為 void object1 onkeydown uint nchar,uint nrepcnt,uint nflags 這...
Win32學習筆記 滑鼠操作
1.游標型別 1 系統游標型別 windows.h idc arrow 箭頭游標 idc cross 十字游標 idc ibeam i字游標 idc icon 空圖示 idc sizeall 指向四個方向的帶有箭頭的游標 idc sizenesw 帶有指向東北方向和西南方向的箭頭的游標 idc si...
win32程式設計 滑鼠訊息
忙起來的時候感覺什麼都不缺,空下來以後才發現什麼都沒有。網易雲熱評 一 基本滑鼠訊息 wm lbuttondown 滑鼠左鍵按下wm lbuttonup 滑鼠左鍵抬起wm rbuttondown 滑鼠右鍵按下wm rbuttonup 滑鼠右鍵抬起wm mousemove 滑鼠移動訊息1 訊息引數 w...