babu61509 散播福音的祭司
註冊時間: 2007-08-26 文章: 142
681.01 果凍幣
|
發表於: 2011-8-21, AM 11:59 星期日 文章主題: [C++/win32] WinInput 簡單的包裝鍵盤/滑鼠輸入類別 1.0 [2011/08/21] |
|
|
class 內容:
代碼: |
class WinInput{
private:
SHORT KeyState[256]; // 暫存按鍵狀態用
HWND hWnd;
public:
WinInput(HWND hwnd);
~WinInput();
bool IsKeyDown(int vKey); // 按鍵是否為按下狀態
bool IsKeyUp(int vKey); // 按鍵是否為放開狀態
bool IsKeyPress(int vKey); // 是否按下並放開按鍵
POINT GetMousePos(); // 取得滑鼠位置 (Clinet座標)
BOOL SetMousePos(POINT Pos); // 設定滑鼠位置 (Clinet座標)
BOOL SetMousePos(int X, int Y); // 設定滑鼠位置 (Clinet座標)
};
|
用法很簡單,IsKeyDown 是判斷目標按鍵目前是否為按下狀態,IsKeyUp 是判斷目標按鍵目前是否為放開狀態,IsKeyPress 則是在上次被呼叫時按鍵為按下狀態,而本次呼叫時為放開狀態才會傳回 true。
另外滑鼠座標為指定 HWND 視窗為基礎的 Client 座標。
換句話說,就是指定視窗工作區左上角為(0,0)原點。
範例:
代碼: |
if (myInput->IsKeyPress(VK_LBUTTON)){ // 如果滑鼠左鍵被按下並放開
POINT Pos = myInput->GetMousePos(); // 取得滑鼠位置
wprintf_s(L"LMB (%d,%d)\n",Pos.x,Pos.y); // 印出 LMB (滑鼠座標)
}
|
按鍵表請參考MSDN : http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx
描述: |
|
下載 |
檔名: |
WinInput.rar |
附件大小: |
2.07 KB |
下載次數: |
共 635 次 |
_________________ 已經畢業了!! |
|