InvalidateRect函数向指定的窗口的更新区域添加一个矩形。更新区域表示必须重新绘制的窗口的客户区域的部分。
BOOL InvalidateRect(
HWND 【的hWnd】, | //更改更新区域的窗口的句柄 |
CONST RECT *【LPRECT】, | //矩形坐标的地址 |
BOOL 【// erase-background flag】 | // erase-background标志 |
); |
参数
【的hWnd】
标识更新区域已更改的窗口。如果此参数为NULL,则Windows会使所有窗口无效并重新绘制,并在函数返回之前将WM_ERASEBKGND和WM_NCPAINT消息发送到窗口过程。
【LPRECT】
指向RECT结构,其中包含要添加到更新区域的矩形的客户端坐标。如果此参数为NULL,则将整个客户端区域添加到更新区域。
【// erase-background flag】
指定在处理更新区域时是否要擦除更新区域内的背景。如果此参数为TRUE,当调用BeginPaint函数时,背景将被清除。如果此参数为FALSE,则背景保持不变。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。
备注
无效区域累积在更新区域中,直到下一个WM_PAINT消息发生时或直到该区域通过使用ValidateRect或ValidateRgn功能进行验证来处理该区域为止。
每当其更新区域不为空并且该窗口的应用程序队列中没有其他消息时,Windows会向窗口发送WM_PAINT消息。
如果更新区域的任何部分的【// erase-background flag】参数为TRUE,则背景将在整个区域中擦除,而不仅仅是给定的部分。
也可以看看
BeginPaint, InvalidateRgn, RECT, ValidateRect, ValidateRgn, WM_ERASEBKGND, WM_NCPAINT, WM_PAINT