我有一個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。 –