上次講的是鍵盤事件,這次我們介紹鼠標事件。下面先介紹下鼠標事件的結構體以及相關信息。
typedef struct _MOUSE_EVENT_RECORD //鼠標事件結構體
{
COORD dwMousePosition; //當前鼠標在控制台窗口緩沖區的位置
DWORD dwButtonState; //鼠標按鍵的狀態
DWORD dwControlKeyState; //控制鍵狀態
DWORD dwEventFlags; //鼠標事件類型
} MOUSE_EVENT_RECORD;
/*
其中鼠標按鍵狀態dwButtonState可能的值有
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FROM_LEFT_1ST_BUTTON_PRESSED 最左邊的鼠標鍵被按下 一般來說就是鼠標左鍵
FROM_LEFT_2ND_BUTTON_PRESSED 左起第二個鼠標鍵被按下 一般來說是鼠標中鍵,就是滾輪鍵
FROM_LEFT_3RD_BUTTON_PRESSED 左起第三個鼠標鍵被按下
FROM_LEFT_4TH_BUTTON_PRESSED 左起第四個鼠標鍵被按下
RIGHTMOST_BUTTON_PRESSED 最右邊的鼠標鍵被按下 一般來說是鼠標右鍵
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
控制鍵狀態dwControlKeyState與鍵盤事件的一樣
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ENHANCED_KEY 擴展鍵被按下
LEFT_ALT_PRESSED 左Alt鍵被按下
LEFT_CTRL_PRESSED 左Ctrl鍵被按下
RIGHT_ALT_PRESSED 右Alt鍵被按下
RIGHT_CTRL_PRESSED 右Ctrl鍵被按下
NUMLOCK_ON 數字鎖定被打開
SCROLLLOCK_ON 滾動鎖定被打開
CAPSLOCK_ON 大寫鎖定被打開
SHIFT_PRESSED Shift鍵被按下
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
鼠標事件類型dwEventFlags有以下幾種
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOUBLE_CLICK 雙擊,第一擊只作為普通按鍵事件,第二擊才作為雙擊事件
MOUSE_HWHEELED 水平鼠標滾輪移動
MOUSE_MOVED 鼠標移動
MOUSE_WHEELED 垂直鼠標滾輪移動
0 當鼠標有鍵被按下或者釋放
*/
本欄目