<Return[R]><Top>

RedrawWindow

Declare Function Api_RedrawWindow& Lib "user32" Alias "RedrawWindow" (ByVal hWnd&, lprcUpdate As Any, ByVal hrgnUpdate&, ByVal fuRedraw&)

Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long

ウィンドウのクライアント領域にある、指定された長方形またはリージョンを更新する。

パラメータ
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 メッセージを生成する。