パラメータ
hWnd
更新(再描画)したいウィンドウのハンドルを指定する。NULL を指定すると、デスクトップウィンドウが更新される。
lprcUpdate
更新したい長方形の座標を保持する 1 個の RECT 構造体へのポインタを指定する。
hrgnUpdate パラメータでリージョンを指定している場合、lprcUpdate パラメータは無視される。
hrgnUpdate
更新したいリージョンのハンドルを指定する。
hrgnUpdate と lprcUpdate 両方のパラメータに NULL を指定すると、クライアント領域全体が更新される。
flags
1 つまたは複数の再描画フラグを指定する。
このパラメータを使って、ウィンドウの無効化や有効、再描画の制御、RedrawWindow の影響を受けるウィンドウの指定を行える。
次のフラグは、ウィンドウを無効化するときに使う。
フラグ(無効化)
|
説明
|
RDW_ERASE
|
ウィンドウの再描画時に、ウィンドウが WM_ERASEBKGND メッセージを受け取る。
RDW_INVALIDATE フラグも同時に指定しなければならない。RDW_INVALIDATE フラグを指定しない
と、RDW_ERASE フラグは効果がない。
|
RDW_FRAME
|
更新リージョンと重なる非クライアント領域の各部分が WM_NCPAINT メッセージを受け取る。
RDW_INVALIDATE フラグも同時に指定しなければならない。RDW_INVALIDATE フラグを指定しない
と、RDW_FRAME フラグは効果がない。通常は、RDW_UPDATENOW フラグか RDW_ERASENOW
フラグのどちらかを指定しない限り、RedrawWindow を実行する際に WM_NCPAINT メッセージが送信されることはない。
|
RDW_INTERNALPAINT |
ウィンドウが無効な領域を持つかどうかにかかわりなく、WM_PAINT メッセージをウィンドウへポストする。 |
RDW_INVALIDATE
|
lprcUpdate または hrgnUpdate パラメータで指定した領域を無効化する(NULL 以外の値を指定できるの
はどちらか一方だけである)。両方とも NULL の場合、クライアント領域全体が無効化される。
|
次のフラグは、ウィンドウを有効化するときに使う。
フラグ(有効化)
|
説明
|
RDW_NOERASE |
未処理の WM_ERASEBKGND メッセージを抑制する(送信しない)。 |
RDW_NOFRAME
|
未処理の WM_NCPAINT メッセージを抑制する(送信しない)。RDW_VALIDATE
も同時に指定しなければならない。通常は、RDW_NOCHILDREN と共に使われる。RDW_NOFRAME
を使うと、ウィンドウの一部が不適切に描画される可能性があるので、注意が必要である。
|
RDW_NOINTERNALPAINT
|
未処理の内部 WM_PAINT メッセージを抑制する(送信しない)。このフラグは、NULL 以外の更新
リージョンから送信された WM_PAINT メッセージに影響を及ぼさない。
|
RDW_VALIDATE
|
lprcUpdate または hrgnUpdate パラメータで指定した長方形またはリージョンを有効化する(NULL 以外
の値を指定できるのはどちらか一方だけである)。両方とも NULL の場合、ウィンドウ全体が有効になる。このフラグは内部の WM_PAINT
メッセージに影響を及ぼさない。
|
次のフラグは、再描画時の動作を指定する。
これらのフラグのうちのいずれか一つを指定しない限り、RedrawWindow 関数は再描画をしない。
フラグ
|
説明
|
RDW_ERASENOW
|
必要に応じて、この関数が制御を返す前に、影響を受けたウィンドウ(RDW_ALLCHILDREN または
RDW_NOCHILDREN フラグを指定されたウィンドウ)へ WM_NCPAINT と WM_ERASEBKGND の各
メッセージを送信する。WM_PAINT メッセージは通常のタイミングで送信される。
|
RDW_UPDATENOW
|
必要に応じて、この関数が制御を返す前に、影響を受けたウィンドウ(RDW_ALLCHILDREN フラグまた
は
RDW_NOCHILDREN フラグを指定されたウィンドウ)へ WM_NCPAINT、WM_ERASEBKGND、
WM_PAINT の各メッセージを送信する。
|
既定では、指定されたウィンドウが WS_CLIPCHILDREN スタイルを持つかどうかによって、RedrawWindow
関数が影響を及ぼすかどう
かが決まる。WS_CLIPCHILDREN スタイルを持たない子ウィンドウは影響を受けない。WS_CLIPCHILDREN ウィンドウが見つかるま
で、WS_CLIPCHILDREN スタイルではないウィンドウは再帰的に有効化または無効化される。
次のフラグは、RedrawWindow 関数の影響を受けるウィンドウを制御する。
フラグ
|
説明
|
RDW_ALLCHILDREN |
子ウィンドウが存在する場合、それらのウィンドウを再描画に含める。 |
RDW_NOCHILDREN |
子ウィンドウが存在する場合、それらのウィンドウを再描画から除外する。 |
戻り値
関数が成功すると、0 以外の値が返る。
関数が失敗すると、0 が返る。
Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。
解説
RedrawWindow 関数を使ってデスクトップウィンドウの一部分を無効にすると、デスクトップウィンドウは
WM_PAINT メッセージを受け取らな
い。デスクトップを再描画するには、RDW_ERASE フラグを使って WM_ERASEBKGND メッセージを生成する。 |