InvalidateRect 函数 (winuser.h)

InvalidateRect 函数将矩形添加到指定窗口的更新区域。 更新区域表示必须重绘的窗口工作区部分。

语法

BOOL InvalidateRect(
  [in] HWND       hWnd,
  [in] const RECT *lpRect,
  [in] BOOL       bErase
);

参数

[in] hWnd

更新区域已更改的窗口的句柄。 如果此参数为 NULL,则系统会使所有窗口(而不仅仅是此应用程序的窗口)失效并重绘,并在函数返回之前发送 WM_ERASEBKGNDWM_NCPAINT 消息。 不建议将此参数设置为 NULL

[in] lpRect

指向 RECT 结构的指针,该结构包含要添加到更新区域的矩形的客户端坐标。 如果此参数为 NULL,则整个工作区将添加到更新区域。

[in] bErase

指定在处理更新区域时是否要擦除更新区域中的背景。 如果此参数为 TRUE,则调用 BeginPaint 函数时将擦除背景。 如果此参数为 FALSE,则背景保持不变。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。

注解

失效区域在更新区域中累积,直到在下一个 WM_PAINT 消息发生时处理该区域,或者直到使用 ValidateRectValidateRgn 函数验证该区域为止。

每当窗口 更新区域不为空且该窗口的应用程序队列中没有其他消息时,系统就会向窗口发送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 ()

另请参阅

BeginPaint

InvalidateRgn

绘制和绘制函数

绘画和绘图概述

矩形

ValidateRect

ValidateRgn

WM_ERASEBKGND

WM_NCPAINT

WM_PAINT