忒复杂了。

解决方案 »

  1.   

    Invalidate:Invalidates the entire client area of CWnd,使整个区域无效,然后使其进行重绘
    InvalidateRect:Invalidates the client area within the given rectangle by adding that rectangle to the CWnd update region.使Rect指定的给定区域无效,然后使其进行重绘
    UpdateWindow与Invalidate功能应该差不多
      

  2.   

    MSDN上解释很清楚嘛
    或者看下这个bloghttp://blog.csdn.net/genaman/archive/2009/07/11/4336483.aspx
      

  3.   

    Invalidate是MFC封装的 InvalidateRect(,NULL,)无效窗口整个客户区。SDK原生的是InvalidateRect和UpdateWindow
    InvalidateRect 无效部分客户区
    UpdateWindow绕过消息队列强制处理一次WM_PAINT
      

  4.   

    他妈的终于搞明白了。
     InvalidateRect(部分区域) 和Invalidate(整个窗口) 仅仅是用来设置无效区域,但是并不重绘窗口。  UpdateWindow 检查窗口有无无效区域,如果有,则立即发送一个WM_PAINT 消息给窗口并立即重画。   RedrawWindow相当于先调用InvalidateRect,紧接着又调用UpdateWindow,此外RedrawWindow还提供了一些前两者没法做到的功能。      如果不调用 InvalidateRect就调用 UpdateWindow,那么UpdateWindow什么都不做,因为没有无效区域。如果调用 InvalidateRect 后不调用UpdateWindow,则系统会自动在窗口消息队列为空的时候,系统自动发送一WM_PAINT消息。