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 の場合、背景は変更されません。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。

解説

無効にされた領域は、次の 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 セット ext-ms-win-ntuser-draw-l1-1-0 (Windows 8 で導入)

関連項目

BeginPaint

InvalidateRgn

描画関数と描画関数

描画と描画の概要

Rect

ValidateRect

ValidateRgn

WM_ERASEBKGND

WM_NCPAINT

Wm_paint