2

マウス処理コードを書くときはいつでも、onmousedown/onmouseup/onmousemove モデルによって、不必要に複雑なコードを作成せざるを得なくなり、最終的にあらゆる種類の UI バグが発生するようになりました。

最近の主要なソフトウェアでさえ見られる主な問題は、ウィンドウの外にドラッグして離す「ゴーストマウス」イベントです。ウィンドウに戻ると、ボタンが押されていても、アプリケーションはマウスが押されていると認識します。これは、画面の境界にあるものを強調表示しようとしている場合に特に厄介です。

マウスコードを書く正しい方法はありますか、それともモデル全体に​​欠陥がありますか?

4

2 に答える 2

2

通常、マウスダウンでマウスイベントをキャプチャするため、アプリケーションウィンドウの外に移動するキャレットに関係なく、マウスの移動とマウスのアップでコードが実行されます。

最近では、これはVMまたはリモートセッションを実行しているときに問題になります。これらのアプリが、ホスト上のウィンドウで表されるマシン画面領域の外側でマウスを追跡することは困難です。

于 2009-03-20T08:28:01.800 に答える
0

どの環境でマウス ボタンを追跡しようとしているかはわかりませんが、これを処理する最善の方法は、onmousedown を検出した後、onmouseup を 100% 追跡するマウス リスナーを用意することです。

そうすれば、ユーザーがマウス ボタンを離した画面領域は関係ありません。どこで発生してもリセットされます。

于 2009-03-20T09:17:15.037 に答える