如果有一个父窗口,在这个父窗口上有很多控件,例如自定义按钮对象,自定义的画图区域对象,
当我对这些控件进行了类似InvalidateRect处理,那么对于父窗口是不是也会触发
wm_paint消息,还是说只会对控件本身产生wm_paint,如果我在父窗口进行了类似InvalidateRect处理,那么会不会把消息对孩子传递下去,使父窗口和所有的
孩子控件都进行重新绘制。

解决方案 »

  1.   

    子窗的不会向上传,但是如果你的父窗口InvalidateRect则相应区域内的窗口就会向下传递下去。
      

  2.   

    刷新子窗口通常不会导致父窗口刷新,除非子窗口在刷新过程中主动刷新其父窗口。
    刷新父窗口时,如果父窗口具有WS_CLIPCHILDREN风格,则不会引起子窗口刷新,否则会刷新该区域内的子窗口。
      

  3.   

    还有一个问题,对于一些临时覆盖的区域,windows会保存这些区域,并在之后试图去恢复这些区域,
    是不是paintstruct这个结构体里面保存了具体的无效区域的信息,假如我也只需要绘制整个显示区域
    的一部分区域,在处理onpaint消息时候,是不是可以获得我的据图无效区域的大小,从而只绘制那些真正
    需要重新绘制的区域,其实我想做的就是,不想在产生显示区域产生wm_paint重新整个显示区域的办法。
      

  4.   

    昨天回覆了這個帖子
    http://topic.csdn.net/u/20090512/18/00417d18-5273-460c-b467-8e340b7356a5.html
    對lz有點參考。:P