1

C++でwinapiを使用してマウスの状態(位置、ボタンの状態)を取得する方法はありますか? Windows メッセージ (WM_MOUSEMOVE、WM_LBUTTONDOWN など) を使用したくありません。

ありがとうございました!

4

2 に答える 2

2

GetCursorInfoGetKeyStateを探しているようです。後者は、対象のマウス ボタンを指定する仮想キー コードで呼び出します。

于 2011-01-21T12:10:46.187 に答える
1

カーソル位置だけが必要な場合は、GetCursorPos () を使用できます。GetCursorInfo () と GetCursorPos() の両方が画面座標を返すことに注意してください。ScreenToClient () を使用て、クライアント領域のオフセットに変換します。

OP は Windows メッセージを使用したくなかったのですが、補足として何か言及したかっただけです。
私が見つけたのは、メッセージ ハンドラー (たとえば WM_SETCURSOR) の一部としてカーソル位置を取得することでした。ほとんどの文献では、GetMessagePos () を使用してメッセージ送信時のカーソル位置を取得することを推奨しています。ただし、マウスが移動した後ではなく、移動する前の位置です。そのため、領域上でマウスオーバー検出を実行しようとすると、位置がピクセルの後ろに「ラグ」を返しました。

于 2011-01-24T16:42:37.120 に答える