C++でwinapiを使用してマウスの状態(位置、ボタンの状態)を取得する方法はありますか? 私はウィンドウメッセージ(WM_MOUSEMOVE、WM_LBUTTONDOWNなど)を使いたくありません。マウスの状態winapi
ありがとうございました!
C++でwinapiを使用してマウスの状態(位置、ボタンの状態)を取得する方法はありますか? 私はウィンドウメッセージ(WM_MOUSEMOVE、WM_LBUTTONDOWNなど)を使いたくありません。マウスの状態winapi
ありがとうございました!
GetCursorInfoとGetKeyStateを探しているようです。後者はvirtual key codesと呼ばれ、関心のあるマウスボタンを指定します。
ありがとうございました!それはうまく動作します:) – Felics
カーソル位置のみが必要な場合は、GetCursorPos()を使用できます。 GetCursorInfo()とGetCursorPos()は画面座標を返します。 ScreenToClient()を使用してクライアント領域のオフセットに変換します。
OPはWindowsメッセージを使用したくなかったが、私はちょうど脇役として何かを言いたかった。私が見つけた
何かが(インスタンスWM_SETCURSOR用)メッセージハンドラの一部としてカーソル位置を取得するということでした、文学のほとんどは、メッセージが送信された時点で、カーソルの位置を取得するために)(GetMessagePosを使用することをお勧めします。しかし、の位置はの前に移動しました。したがって、マウスオーバー検出を領域上で試行しようとすると、位置がピクセルの後ろに「遅れ」ます。
私は個人的にWOW64の下で64ビットVista(おそらく64ビットXP)のバグのために 'GetCursorPos'を呼び出さないようにしています。渡すポインタが高アドレス空間(> 2GB)にあるとき、関数は失敗します。これはWindows 7で修正されていますが、どこでも動作するため、 'GetCursorInfo'が好きです。 –
優れた観察。私はこれを私のメモに加えています。これらのうちの1つは、デバッグ中のキーボードのようなものです。 – CoreyStup
あなたはそれらを使用したくないなどですか? – user963241