- 題名: マウスWheelのイベントについて
- 日時: 2005/06/16 11:58:54
- ID: 11303
- この記事の返信元:
- (なし)
- この記事への返信:
- [11318] Re[1]: マウスWheelのイベントについて2005/06/17 9:23:56
- ツリーを表示
じゃんぬさん ご教授ありがとうございます。
> WndProc をオーバーライドして WM_MOUSEWHEEL を捕捉、
> ActiveControl が、CmbA, CmbB であれば排除。
> といった具合でしょうか。
早速下記のようにWndProcのオーバーライド処理を入れてみたのですが
上手く動作してくれません。
protected override void WndProc(ref Message m) {
const int WM_MOUSEWHEEL = 0x20A;
if((this.ActiveControl == CmbA) ||
(this.ActiveControl == CmbB)) {
if(m.Msg == WM_MOUSEWHEEL) {
m.Result = IntPtr.Zero;
} else {
base.WndProc(ref m);
}
} else {
base.WndProc(ref m);
}
}
何処が悪いのかご指摘頂けると助かります。
よろしくお願いします。
分類:[.NET]
いつも参考にさせていただいています。
現在C#で画面を作成しているのですが
親画面をDlgMainとして
そこから呼ばれるDlgWindowAに
コンボボックスCmbA, CmbB, CmbC
その他テキストボックス等を複数配置
上記のような条件でコンボボックスのCmbAとCmbBにだけ
マウスWheelのイベントを無視させたい
(Wheelで選択アイテムを変更させたくない)
のですが、方法はあるでしょうか?
どうかよろしくお願いします。