InvalidateRect 函数 (winuser.h)
InvalidateRect 函数将矩形添加到指定窗口的更新区域。 更新区域表示必须重绘的窗口工作区部分。
语法
BOOL InvalidateRect(
[in] HWND hWnd,
[in] const RECT *lpRect,
[in] BOOL bErase
);
参数
[in] hWnd
更新区域已更改的窗口的句柄。 如果此参数为 NULL,则系统会使所有窗口(而不仅仅是此应用程序的窗口)失效并重绘,并在函数返回之前发送 WM_ERASEBKGND 和 WM_NCPAINT 消息。 不建议将此参数设置为 NULL 。
[in] lpRect
指向 RECT 结构的指针,该结构包含要添加到更新区域的矩形的客户端坐标。 如果此参数为 NULL,则整个工作区将添加到更新区域。
[in] bErase
指定在处理更新区域时是否要擦除更新区域中的背景。 如果此参数为 TRUE,则调用 BeginPaint 函数时将擦除背景。 如果此参数为 FALSE,则背景保持不变。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。
注解
失效区域在更新区域中累积,直到在下一个 WM_PAINT 消息发生时处理该区域,或者直到使用 ValidateRect 或 ValidateRgn 函数验证该区域为止。
每当窗口 的 更新区域不为空且该窗口的应用程序队列中没有其他消息时,系统就会向窗口发送WM_PAINT消息。
如果 bErase 参数对于更新区域的任何部分为 TRUE ,则会在整个区域(而不仅仅是指定部分)中擦除背景。
示例
有关示例,请参阅 使工作区失效。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | windows 8 中引入的 ext-ms-win-ntuser-draw-l1-1-0 () |