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訊息的更新區域不是空的,而且該視窗的應用程式佇列中沒有其他訊息時,系統就會將 WM_PAINT 訊息傳送至視窗。

如果更新區域的任何部分 的 bErase 參數為 TRUE ,則會在整個區域中清除背景,而不只是在指定的部分中清除。

範例

如需範例,請參閱 使工作區失效

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-draw-l1-1-0 (在 Windows 8)

另請參閱

BeginPaint

InvalidateRgn

繪製和繪圖函式

繪製和繪圖概觀

矩形

ValidateRect

ValidateRgn

WM_ERASEBKGND

WM_NCPAINT

WM_PAINT