4

コントロールの 1 つに MouseWheel イベントを接続しましたが、e.Delta常に 120 の倍数であるとは限らないことに気付きました。特に頻繁にスクロールする場合はそうです。「131」や「-394」などの数字が表示されます。

なぜですか?どうすれば修正できますか?私のプログラムでは、数値 (120 で除算) が実際のノッチ数と相関しないという問題が発生しています。

4

1 に答える 1

5

明らかに、デルタが 120 であることはもはや当てにできません。これは同じ問題に関する投稿です。

そしてMSDNは言う

デルタを 120 に設定したのは、Microsoft または他のベンダーがより細かい解像度のホイール (ノッチのない自由に回転するホイール) を構築して、1 回転あたりにより多くのメッセージを送信できるようにするためですが、各メッセージの値は小さくなります。この機能を使用するには、WHEEL_DELTA に達するまで着信デルタ値を追加するか (したがって、デルタローテーションの場合は同じ応答が得られます)、より頻繁なメッセージに応答して部分的な行をスクロールすることができます。スクロールの粒度を選択して、それに達するまでデルタを蓄積することもできます。

于 2012-06-17T22:58:22.550 に答える