1

ここに投稿されたコード、具体的にはオーバーライドされたメソッドのSyntaxRichTextBox.csを見ていますWndProc

これはコードのタイプミスですか?Windowsのメッセージとは何0x00fですか?彼らは意味0x0fしましたWM_PAINTか?そして、そのメッセージをキャッチするコードの作者は何ですか?

コード:

protected override void WndProc(ref System.Windows.Forms.Message m)
{
    if (m.Msg == 0x00f)
    {
        if (m_bPaint)
            base.WndProc(ref m);
        else
            m.Result = IntPtr.Zero;
    }
    else
        base.WndProc(ref m);
}
4

1 に答える 1

2

まず、James McNellisが上記のコメントで示唆したように、0x00fと0x0fは同じ番号を示します。メッセージの値を確認しませんでしWM_PAINTたが、コードはこのメッセージを処理しているようです。

単純な最適化のように見えます。がそうである場合m_bPaintfalsebase.WndProc()呼び出しをスキップしてください。おそらくm_bPaint、再描画が必要なものがあることを示すフラグです。

于 2012-08-14T18:37:01.107 に答える