さらに、もう 1 つの非常に重要な点は、Win32 ではマウス移動イベントが継続的ではないということです。つまり、1px マウス ポインターを移動するたびにマウス移動が発生するわけではなく、マウスの位置が定期的に変更されます。マウス移動イベントを生成します。
したがって、直径 5px のドットなどの小さなページ オブジェクトの場合、setCapture と releaseCapture がない場合、マウスを押したままにした後、マウスを素早く動かすと、マウスは離れますが、次の Mousemove イベントがドット オブジェクトに送信されないため、小さなドットはまだ所定の位置にあります。
Web 開発と Windows 開発の最大の違いは、Windows 開発はステートフルであるのに対し、Windows では Ctrl Alt Del が強制されない限り、すべての操作をプログラムによって制御できることです。非常に重要な操作が実行された場合でも、ユーザーがブラウザの閉じるボタンをクリックするとすぐに前の操作の結果が消去されますが、ユーザーが選択できるようにいくつかのコードを onunload イベントに追加できます。
数日前に setCapture メソッドをある領域で使用することを知りました。 IE ドキュメントの Onclick または onmouse*** およびその他の関連するマウス イベント メソッドを書き込むと、マウスが IE の外に移動した場合でも、それをキャプチャできます。特定の div の onclick イベント このとき、閉じるボタンをクリックすると、releaseCapture メソッドの逆で、マウス モニターを解放します。 >この機能を使用すると、IE のウィンドウの終了やその他の破壊的な操作を遅らせることができます。一部の重要な操作は、破壊的な操作が実行される前に処理できます。
残念なことに、setCapture と releaseCapture は、onmousedown のみをサポートしていません。 、onmouseup、onmousemove、onclick、ondblclick、onmouseover、onmouseout など マウス イベントは機能します。
次に、div 要素 divMain のコンテンツを保護する場合の簡単な例を示します。 divMain で setCapture メソッドを実行します:
document.getElementById(" divMain").setCapture();
2. setCapture と releaseCapture を切り替えるボタン btnChange を追加し、グローバル変数
var isFreeze を定義します。 = true;
3. btnChange の onclick イベントに、次のコードを追加します。