k-kawaa / SimpleIDE

C# simple editor
2 stars 0 forks source link

RichBoxのフォントサイズをマウスのスクロールでサイズ変更できないようにしたい。 #3

Open k-kawaa opened 3 years ago

k-kawaa commented 3 years ago

RichTextBoxは現状、フォントサイズの変更が簡単にできてしまう状態です。 この場合、フォント設定画面で設定したものが無駄になってしまうので、固定するか、変更できないようにするしかないと思われます。 方法を知っている方、教えていただけると幸いです。

automatic9045 commented 3 years ago

「winforms richtextbox ズーム 禁止」で検索してみましたが、WinFormsからは直接禁止する機能は提供されておらず、 リッチテキストボックスへの「Ctrl+マウスホイール」のキー入力をWin32APIで無効化する方法がとられるようです。

引っかかったサイト: How can I disable text zoom in RichTextBox when holding the Ctrl key and mouse wheeling? - MSDNフォーラム Disable RichTextBox zooming while scrolling with ctrl key - StackOverFlow

どちらも同じ方法がとられています。
簡単に説明すると、リッチテキストボックスにメッセージが送られてきたことを察知した時(WndProc)、もしそのメッセージがCtrl+マウスホイールの入力だった場合は無効にして送信し直しています(SendMessage)。

Win32APIのウィンドウとメッセージの関係については調べてみて下さい。

k-kawaa commented 3 years ago

ありがとうございます。