none
RichTextBox上で「CTRL+マウスホイール」を操作したときのズームについて RRS feed

  • 質問

  • お世話になります。

    既出でしたら申し訳ございません。

    RichTextBox上でCTRLキーを押しながらマウスホイールを上下に動かすと

    表示しているテキストが拡大縮小しますが、これを無効化することは可能でしょうか?

    2017年3月25日 8:44

回答

  • 継承してCtrl+Shift+Wheelを無視してみる
    public class RichTextBoxEx : RichTextBox
    {
        protected override void WndProc(ref Message m)
        {
            const int WM_MOUSEWHEEL = 0x020A;
            if (m.Msg == WM_MOUSEWHEEL && ModifierKeys == (Keys.Shift | Keys.Control))
            {
                return;
            }
            base.WndProc(ref m);
        }
    }

    Public Class RichTextBoxEx
        Inherits RichTextBox
        Protected Overrides Sub WndProc(ByRef m As Message)
    
            Const WM_MOUSEWHEEL As Integer = &H20A
            If (m.Msg = WM_MOUSEWHEEL AndAlso ModifierKeys = (Keys.Control Or Keys.Shift)) Then
                Return
            End If
    
            MyBase.WndProc(m)
        End Sub
    End Class
    #手元で試すとCtrl+Shift+Wheelで拡縮なので、Ctrlだけ拡縮するならShift判定は消してください

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2017年3月25日 9:26