C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 20 を表示中)
■8591 / )  Re[3]: MouseWheelイベントで移動量を無視する方法について
□投稿者/ あら (30回)-(2007/10/03(Wed) 16:19:46)
RUNさん、mあさん、@echoさん、れいさん返信ありがとうございます。

教えて頂いたソースをC#に変更して実行したら
 ・境界値の挙動で2ノッチしないと値が変わらない・・・
 ・VBも計算式もよくわからなかったので、値を減らす場合の処理がいいのか不明・・・
といった問題が残りましたが、大体考えていた挙動になりましたので、
解決済とさせて頂きます。

ありがとうございました。

--------------------------
以下れいさんに教えて頂いたソースのC#に変更したものです。

    public class SlowWheelNumericUpDown : NumericUpDown
    {
        private int wheeldelta = 0;
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x20A)
            {
                if (SystemInformation.MouseWheelScrollLines > 0)
                {
                    int delta;
                    wheeldelta += ((int)m.WParam >> 16);
                    delta = (wheeldelta / 120) + 120 / SystemInformation.MouseWheelScrollLines;
                    if (wheeldelta < 0)
                    {
                        delta = -delta;
                    }
                    wheeldelta = wheeldelta % 120;
                    m.WParam = (IntPtr)((delta << 16) | ((int)m.WParam & 0xffff));
                }
            }

            base.WndProc(ref m);
        }
    }

解決済み
返信 編集キー/


管理者用

- Child Tree -