CWnd::RedrawWindow
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE
);
パラメーター
lpRectUpdate
RECT をポイントし、更新の四角形の座標を含むを構成します。 このパラメーターは prgnUpdate が 有効な領域のハンドルが含まれている場合は無視されます。prgnUpdate
更新領域を指定します。 prgnUpdate と lpRectUpdate の両方が null場合は、クライアント領域全体が更新領域に追加されます。flags
次のフラグがペインを無効にするために使用されています:ペインが再描画する場合RDW_ERASE に、ウィンドウは WM_ERASEBKGND のメッセージを受信します。 RDW_INVALIDATE のフラグを指定する必要があります; それ RDW_ERASE は無効です。
RDW_FRAME により WM_NCPAINT のメッセージを受信するまで更新領域に共通するウィンドウの非クライアント領域の部分が発生します。 RDW_INVALIDATE のフラグを指定する必要があります; それ RDW_FRAME は無効です。
RDW_INTERNALPAINT は、ウィンドウが無効領域が含まれているかどうか WM_PAINT のメッセージをウィンドウに関係なく、ポストします。
RDW_INVALIDATE は lpRectUpdate か prgnUpdate (1 ビットのみがない nullの場合もあります) を無効にします。 両方の null場合、ウィンドウ全体が無効になります。
次のフラグがペインを検証するために使用されています:
RDW_NOERASE は WM_ERASEBKGND の保留中のメッセージを抑制します。
RDW_NOFRAME は WM_NCPAINT の保留中のメッセージを抑制します。 このフラグは RDW_VALIDATE で使用する必要があり、RDW_NOCHILDRENで一般に使用されます。 このオプションは注意がウィンドウの一部が正しく描画することを防ぐことができるため、を使用する必要があります。
RDW_NOINTERNALPAINT は WM_PAINT の保留中の内部メッセージを抑制します。 このフラグは WM_PAINT のメッセージに影響を与える無効領域になります。
RDW_VALIDATE は lpRectUpdate か prgnUpdate (1 ビットのみがない nullである場合) を検証します。 両方の null場合、ウィンドウ全体が検証されます。 このフラグは WM_PAINT の内部メッセージには影響しません。
次のフラグは再描画ことがいつ実行されるかを制御します。 描画は RedrawWindow の関数によってこれらのビットの 1 つが指定されていない場合は行われません。
関数が返される前に ( RDW_ALLCHILDREN と RDW_NOCHILDREN のフラグで指定) RDW_ERASENOW によって 影響を受けるウィンドウは WM_NCPAINT および必要に応じて WM_ERASEBKGND のメッセージを受け取ります。 WM_PAINT のメッセージが遅延。
( RDW_ALLCHILDREN と RDW_NOCHILDREN のフラグで指定) RDW_UPDATENOW に よって影響を受けるウィンドウに関数が返される前に WM_NCPAINT、WM_ERASEBKGNDと WM_PAINT のメッセージを、必要に応じて受け取ります。
既定では、RedrawWindow の関数によって影響を受けるウィンドウを指定されたウィンドウに WS_CLIPCHILDREN のスタイルかどうかによって異なります。 WS_CLIPCHILDREN ウィンドウの子ウィンドウは影響を受けません。 ただし、WS_CLIPCHILDREN のウィンドウでないこれらのペインは再帰的に検査するか、WS_CLIPCHILDREN のウィンドウが出現するまで無効になります。 ウィンドウが RedrawWindow の関数によって影響を受ける次のフラグのコントロール:
RDW_ALLCHILDREN は再描画操作に子ウィンドウがある場合、含まれます。
RDW_NOCHILDREN は再描画操作から子ウィンドウがある場合は含まれません。
戻り値
ペインが正常に開始直されたらは、; それ以外の場合は 0。
解説
デスクトップ ウィンドウの一部を無効にするに RedrawWindow のメンバー関数を使用している場合、ウィンドウは WM_PAINT のメッセージが表示されなくなります。 デスクトップを再描画するには、アプリケーションに CWnd::ValidateRgn、CWnd::InvalidateRgn、CWnd::UpdateWindow、または RedrawWindowを使用する必要があります。
必要条件
ヘッダー: afxwin.h