Win32API: RedrawWindow

ウィンドウ内の指定された長方形、またはリージョンを再描画します。


定義
Declare Function RedrawWindow Lib "user32" _
         (hWnd As HWND, _
    ByRef lprcUpdate As RECT, _
          hrgnUpdate As HRGN, _
          flags As DWord) As Long
hWnd
ウィンドウ ハンドルを指定します。

lprcUpdate (ポインタ参照)
更新領域の長方形の座標が格納されている、RECT構造体へのポインタを指定します。hrgnUpdate パラメータが NULL でないときは、このパラメータは無視されます。

hrgnUpdate
更新領域を示すリージョンのハンドルを指定します。lprcUpdate パラメータとhrgnUpdate パラメータを NULL にすると、クライアント領域全体が再描画されます。

flags
再描画の方法に関するオプションを、以下の定数を組み合わせて指定します。

※無効化する場合
定数説明
RDW_ERASEウィンドウの再描画時に、WM_ERASEBKGND メッセージを送ります。RDW_INVALIDATE フラグと同時に指定する必要があります。
RDW_FRAME更新領域と交差する非クライアント領域の部分にも、WM_NCPAINT メッセージを送ります。RDW_INVALIDATE フラグと同時に指定する必要があります。
RDW_INTERNALPAINTウィンドウが無効な領域を持つか持たないかに関わらず、WM_PAINT メッセージをウィンドウにポストします。
RDW_INVALIDATE指定したウィンドウ内の領域を無効化します。

※有効化する場合
定数説明
RDW_NOERASE未処理の WM_ERASEBKGND メッセージを送らないようにします。
RDW_NOFRAME未処理の WM_NCPAINT メッセージを送らないようにします。RDW_VALIDATE フラグと同時に指定する必要があります。
RDW_NOINTERNALPAINT未処理の内部 WM_PAINT メッセージを送らないようにします。
RDW_VALIDATE指定したウィンドウ内の領域を有効化します。

※再描画時の動作
定数説明
RDW_ERASENOW必要であれば、関数が制御を返す前に、影響を受けたウィンドウ(RDW_ALLCHILDREN または RDW_NOCHILDREN のフラグで指定されているウィンドウ)に WM_NCPAINTメッセージおよび WM_ERASEBKGND メッセージを送ります。WM_PAINT メッセージは通常のタイミングで送られます。
RDW_UPDATENOW必要であれば、関数が制御を返す前に、影響を受けたウィンドウ(RDW_ALLCHILDREN フラグまたは RDW_NOCHILDREN フラグで指定されているウィンドウ)に WM_NCPAINT、WM_ERASEBKGND、WM_PAINT の各メッセージを送ります。
RDW_ALLCHILDREN子ウィンドウがあるときは、それらも再描画の対象とします。
RDW_NOCHILDREN子ウィンドウがあるときは、それらを再描画の対象から外します。

戻り値

関数が成功すると、TRUE が返ります。失敗すると、FALSE が返ります。

解説

ウィンドウ リージョンの外側は描画されません。
ウィンドウ リージョンの座標は、ウィンドウの左上隅を原点とします。

環境情報

インクルード ファイル: api_window.sbp 内で定義済み
DLLファイル: user32.dll


InvalidateRect関数InvalidateRgn関数RECT構造体