none
EM_STREAMIN、EM_STREAMOUTのWindowsメッセージを直接処理したい RRS feed

  • 質問

  • EM_STREAMIN、EM_STREAMOUTのWindowsメッセージを直接処理したく、
    WndProcをOverridesした下記のプログラムを作成いたしました。

       Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
            Select Case m.Msg
                Case EM_STREAMIN, EM_STREAMOUT
                    Exit Sub
            End Select
            MyBase.WndProc(m)
        End Sub

    RichTextBoxのTextChangedイベントの際に、

    <01451> 002018B6 S message:0x044A [ユーザー定義:WM_USER+74] wParam:00000011 lParam:001946C8
    <01452> 002018B6 R message:0x044A [ユーザー定義:WM_USER+74] lResult:00000002

    のようにEM_STREAMOUTのメッセージが発生することを、
    spy++で確認しておりますが、
    WndProcメソッドにてEM_STREAMOUTのメッセージが発生しません。

    原因についてお分かりの方がいらっしゃいましたら、
    ご回答よろしくお願い致します。

    2010年2月26日 7:50

回答

  • EM_*** というメッセージは RichTextBox の WndProc に送られるので、RichTextBox を派生させその WndProc をオーバーライドする必要があります。
    • 回答としてマーク ben1088nsr 2010年3月1日 11:04
    2010年2月26日 8:12

すべての返信

  • EM_*** というメッセージは RichTextBox の WndProc に送られるので、RichTextBox を派生させその WndProc をオーバーライドする必要があります。
    • 回答としてマーク ben1088nsr 2010年3月1日 11:04
    2010年2月26日 8:12
  • Hongliang 様

    ご回答いただきありがとうございます。

    RichTextBox を派生させたコントロールを作成し、
    そちらでWndProc をオーバーライドさせるということですね。

    早速、確認してみます。
    ありがとうございました。

    2010年3月1日 0:33
  • Hongliang

    確認いたしました。
    ありがとうございました。
    2010年3月1日 11:06