こんにちは。いつも参考にさせて頂いております。よこよこと申します。
現在WinXP Pro. + VS.net Pro.という環境でVC#.netでアプリを
作成しています。
パラメータの可変をマウスのホイールを使ってできないかなと思い、
プロジェクトの新規作成で生成されたスケルトンで、
Form1にMouseMoveイベントのみ追加して、下記のようなコードで
イベントが発生するかを確認してみました。
=====
private void Form1_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.Delta);
}
=====
しかし、上記のコードではマウスのボタン操作、マウスの移動に関しては
問題なくイベントが発生するのですが、肝心のホイールの回転でイベントが
発生してくれないみたいなのです。
VC++の時は、確かDeltaにホイールの移動量が入ってきたと思ったんですが、
VC#.netでは上記のような方法で検出をすることは不可能なのでしょうか?
それとも、他にホイールの回転を検出する方法が用意されているのでしょうか?
ご存知の方いらっしゃいましたら情報頂けると助かります。
よろしくお願いいたします。
MouseMoveイベントはマウスが移動したときのイベントです。
マウスのホイール操作はMouseWheelイベントでわかると思います。
こんばんは。よこよこです。
よねKENさん、レスありがとうございます。
> MouseMoveイベントはマウスが移動したときのイベントです。
> マウスのホイール操作はMouseWheelイベントでわかると思います。
下記のようなコードでイベントハンドラを追加してやることで
ホイールの回転時にイベント発生させることができました。
MouseEventArgsにDeltaプロパティがあったので、ホイール回転で
MouseMoveイベントが発生するもんだと思い込んでいました。
ありがとうございました!
=====
private void MouseWheelEvent(object sender, MouseEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.Delta);
}
private void Form1_Load(object sender, System.EventArgs e)
{
this.MouseWheel += new MouseEventHandler(MouseWheelEvent);
}
=====