1

コードで機能するメソッドを使用することは問題ないかもしれませんが、舞台裏で何が起こっているのかを正確に知らないことはそれほど良い気分ではありません。ギャップや不完全な仕事のような料金。

必要と思われたので、たまたまReleaseMouseCapture()メソッド(OnMouseUpイベント)を見つけて使用しましたが、このメソッドを使用するかどうかは、少なくともアプリケーションの視覚的な部分には影響しないことに気付きました。

いつ使うべきか教えていただけますか?

ありがとう。

4

3 に答える 3

2

MSDNによると:

When an object captures the mouse, all mouse related events are treated as if the object with mouse capture perform the event, even if the mouse pointer is over another object.

あなたがしていることによって、それは理にかなっているかもしれませんし、そうでないかもしれません。さらに情報が必要です。しかし、要約すると、それをキャプチャするオブジェクトは、マウスからのすべてのイベントをリッスンして受信します。このようにして、マウスロジックをより適切に整理できます。たとえば、オブジェクト自体がすべてのマウスイベントを取得するため、画面上でオブジェクトをドラッグすると、これに最適です。

ただし、使用しているだけの場合は、ReleaseCaptureMouseなぜ使用しているのかわからない。CaptureMouseどこでも使っていますか?

于 2012-08-27T19:26:44.470 に答える
2

マウスをキャプチャするコードを書くときはいつでもそれを使用し、終了したらマウスキャプチャを解放する必要があります。

典型的な例は、コントロールのドラッグ/ドロップです。ドラッグ操作を開始するときに、アプリケーションまたはコントロールにマウスをキャプチャさせて、マウスで行われたすべての動きが、マウスの実際の位置に関係なく、特定のアプリケーションまたはコントロールに送信されるようにしたい場合があります。ユーザーがマウスボタンを離したときに、マウスキャプチャを放して、アプリケーション/コントロールが関心のないマウスイベントの受信を停止するようにする必要があります。

于 2012-08-27T19:27:42.007 に答える
1

ReleaseMouseCapture電話をかけた場合にのみ電話をかける必要がCaptureMouseあるため、あなたの場合は必要なようには聞こえません。

マウスをキャプチャすると、マウスがコントロールの境界の外に移動した場合でも、コントロールはマウスメッセージを受信します。これは、コントロールの外でドロップが発生するドラッグアンドドロップなどに使用されます。

于 2012-08-27T19:27:00.447 に答える