0

これを検出する方法はありますか?

あなたが何かをしているアプリケーションがあり、マウスが動かされるまでリッスンして待機しているBackgroundthreadがあると想像してください-(どこまででも):

Left
Right
Left
Right
Left
Right
Left
Right
Left
Right

トリガーを起動するか、特定のメソッドを呼び出します。

何か案は?

4

3 に答える 3

2

提供された質問の観点から、これに別のスレッドを使用することはありません。MouseMoveそれが何であれ、イベントをリッスンし、マウスの移動方向を検出します。

これは、イベント ハンドラー自体によって受信されたコーディネイトを減算することで実行できます。

ここでのことは、検出アルゴリズムで使用する許容範囲の決定になります。

より明確にするために:

の差がX(たとえば)より大きい場合は1に移動するとカウントし、より小さい場合はに移動するようにカウントします。-1

このようなもの。

于 2012-10-08T14:38:03.420 に答える
2

マウスポインタの現在位置を取得します。新しい場所に移動します。新しい位置の X 座標が前の位置の X 座標より小さい場合は、マウスが左に移動したことを意味します。右に移動する場合も同様です。新しい位置がベース位置になるたびに。カウンターを保持でき、カウントが 5 の場合は、好きなことを実行できます。

于 2012-10-08T14:39:52.653 に答える
1

ウィンドウに関連付けられた MouseMove イベントを使用します。起動するたびにマウスの位置を保存し、現在の位置を最後の位置と比較して、左に移動したか、右に移動したか、またはすべてではなく (つまり、上または下に) 移動したかを判断します。

于 2012-10-08T14:36:55.160 に答える