窗口消息处理程序可以通过呼叫InvalidateRect使显示区域内的矩形无效。如果消息队列中已经包含一个WM_PAINT消息,Windows将计算出新的无效矩形。否则,它将一个新的WM_PAINT消息放入消息队列中。在接收到WM_PAINT消息时,窗口消息处理程序可以取得无效矩形的坐标(我们马上就会看到这一点)。通过呼叫GetUpdateRect,可以在任何时候取得这些坐标。
我想知道文中说的“如果消息队列中已经包含一个WM_PAINT消息,Windows将计算出新的无效矩形”的意思是说用新计算出的无效矩形直接代替在消息队列旧的无效矩形,还是删除消息队列中就得无效矩形之后再投递一个新的无效矩形到消息队列

解决方案 »

  1.   

    直接后面跟上  不删除 不替换   
    消息队列  大家都排队的 
      

  2.   

    这个没有研究,应该由一个比较合理的算法。如果前一个是客户区全部刷新,后一个是刷新部分矩形呢。肯定不能用后来的取代原来的了,这样不就有遗漏的地方了?
      

  3.   

    是取2个矩形的并集。比如最简单的做法就是重新设置一个新矩形,把2个旧的矩形都包进来。