2

SetCursorPos を使用して、画面の端にカーソルが当たったときにカーソル位置を移動しようとしています (スクラブ コントロールの場合)。標準の「端がヒットするまで追跡し、カーソルを画面の中央に移動する」こと。

問題は、Windows がマウス イベントを取得するとすぐに、カーソル位置を元の位置にリセットすることです。

デバッグ目的で、http: //msdn.microsoft.com/en-us/library/windows/desktop/ms648380 (v=vs.85).aspx#_win32_Using_the_Keyboard_to_Move_the_Cursor のコードを使用してテスト アプリを作成しました。

これは同じ動作を示しています。マウスを使用してカーソルをウィンドウの左上隅 ([ファイル] メニューのすぐ下) に置き、キーボードを使用してカーソルを任意の場所に移動します。しかし、マウスに触れるとすぐに、カーソルが左上隅に戻ります。

これは、マウスを使用してスクラブする私のコントロールには明らかに役に立ちません。

Windows に SetCursorPos の位置を真実として受け入れさせるにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

SetCursorPos を使用すると、通常は問題なく動作します (使用するのは一般的に悪いスタイルと見なされますが)。 ただし、Wacom タブレットなどの一部のデバイスは絶対位置を送信します。デバイスが新しい場所を送信するとすぐに、カーソルはジャンプして戻ります。このままだと本当にどうしようもない。

ただし、カーソルの速度を検出しようとしているためにこれを行っていると思いますか? その場合は、カーソルの位置をまったく使用せずに低レベルの値を提供する別の API を使用する必要があります。DirectInput をご覧ください。

于 2013-10-02T06:52:38.510 に答える