WndProc覆盖奇怪的消息,不能正确

时间:2012-08-14 18:32:29

标签: c# windows

我正在查看已发布的here代码,特别是覆盖方法WndProc中的SyntaxRichTextBox.cs。

这只是代码中的拼写错误吗?什么windows msg是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);
}

1 个答案:

答案 0 :(得分:2)

首先,正如James McNellis在上面的评论中所建议的那样,0x00f和0x0f表示相同的数字。我没有检查WM_PAINT消息的值,但代码看起来好像正在处理此消息。

看似简单的优化:如果m_bPaintfalse,请跳过base.WndProc()来电。可能m_bPaint是一个标志,表示有些东西需要重新绘制。