CWnd::InvalidateRgn

void InvalidateRgn( CRgn* pRgn, BOOL bErase = TRUE );

参数:
pRgn指向CRgn对象的指针,标识了要被加入更新区域的区域。这个区域被假定使用客户区坐标。如果这个参数为NULL,则整个客户区都被加入到更新区域。
bErase指定客户区内的背景是否要被擦除。

说明:
这个函数将给定的区域加入CWnd更新区域,使该区域无效。无效的区域与更新区域内的其它区域一起被标记,以便在发送下一条WM_PAINT消息时处理重画。无效的区域在更新区域内累积,直到发生下一次WM_PAINT调用,这个区域被处理为止,或者直到这个区域被ValidateRect或ValidateRgn成员函数标为有效为止。
bErase参数指定了在处理更新区域的时候是否要擦除更新区域内的背景。如果bErase为TRUE,则当调用BeginPaint的时候,将擦除背景。如果bErase为FALSE,则背景保持不变。如果对于更新区域的任何部分bErase为TRUE,则整个区域的背景都会被擦除,而不仅是给定的部分。
当CWnd的更新区域不为空,并且应用程序的窗口消息队列中没有其它消息时,Windows就发送一条WM_PAINT消息。
给定的区域必须是先前用一个区域函数创建的。

请参阅:
CWnd::BeginPaint, CWnd::ValidateRect, CWnd::ValidateRgn, ::InvalidateRgn