是子窗口先接收到自己的WM_ERASEBKGND, 还是父窗口先接受到WM_CTLCOLOR?
比如CStatic, 我在WM_ERASEBKGND里改变字体颜色有效果, 但是随后便被覆盖掉了, 这是什么造成的?

解决方案 »

  1.   

    WM_ERASEBKGND里直接return TRUE,不让它重绘背景。
      

  2.   

    比如CStatic, 我在WM_ERASEBKGND里改变字体颜色有效果, 但是随后便被覆盖掉了, 这是什么造成的?
    这是什么意思啊?是一个Static控件?
    我试了下,静态控件好像是没有消息映射的啊,我把他的ID改了,可用加几个消息,但还是没有WM_ERASEBKGND消息的。
    是我理解错了吧?
      

  3.   

    请参考我的博客文章
    http://blog.csdn.net/zgl7903/archive/2010/04/05/5451009.aspx
      

  4.   

    请在WM_CTLCOLOR里修改字体,WM_ERASEBKGND保持原样不要改动。一般都是在WM_CTLCOLOR修改字体颜色的。实际效果可能与CStatic的绘制步骤有关。