我有一个RichTextBox滚动条设置为无。根据MSDNWM_MOUSEWHEEL消息不传播给父母
DefWindowProc函数将消息传播到窗口的父 。应该没有内部转发的消息,因为 DefWindowProc将它传播到父链,直到找到处理它的 窗口。
我此解释为,我不应该需要挂接到消息泵(IMessageFilter)和手动向前WM_MOUSEWHEEL事件包含在RichTextBox的母体形式。当我在RichTextBox中并执行鼠标滚动时,表单不会滚动。为什么不?我怎样才能让窗体滚动?
请记住,RichTextBox的滚动条设置为none,并为Form启用。那么为什么表单不能获得滚动事件呢?
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
this.AutoScroll = true;
richTextBox1.ScrollBars = RichTextBoxScrollBars.None;
}
}
使用此代码,一旦我点击里面的RTF我失去了所有的能力滚动。即使我在框外点击,我也无法再滚动。我认为这消耗了我所有的消息。我试着检查== WM_MOUSEWHEEL而不是运行时错误。 –
除非有什么更好的工作,我坚持使用IMessageFilter。 –