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 で導入) |