次の方法で共有


CWnd::RedrawWindow

更新 : 2007 年 11 月

指定されたウィンドウのクライアント領域の指定された四角形または領域を更新します。

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 を無効にします (どちらかが NULL でなくてもかまいません)。両者とも NULL の場合は、ウィンドウ全体が無効になります。

    次のフラグは、ウィンドウを有効にするために使います。

    • RDW_NOERASE   保留状態の WM_ERASEBKGND メッセージの送信を中止します。

    • RDW_NOFRAME   保留状態の WM_NCPAINT メッセージの送信を中止します。このフラグは RDW_VALIDATE と共に使用する必要があります。通常は RDW_NOCHILDREN と共に使われます。このオプションを使用すると、ウィンドウの一部が正しく描画されない場合もあるため、注意して使用する必要があります。

    • RDW_NOINTERNALPAINT   保留状態の内部 WM_PAINT メッセージの送信を中止します。このフラグは、無効領域からの WM_PAINT メッセージには影響しません。

    • RDW_VALIDATE   lpRectUpdate または prgnUpdate を有効にします (どちらかが NULL でなくてもかまいません)。両者とも NULL の場合は、ウィンドウ全体が有効になります。このフラグは、内部の WM_PAINT メッセージには影響しません。

    次のフラグは、再描画が発生したときに制御を行います。このビットが 1 つも設定されていない場合は、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 メッセージを送信します。

    RedrawWindow 関数の影響を受けるウィンドウは、既定では、指定されたウィンドウが WS_CLIPCHILDREN スタイルを持っているかどうかに依存します。WS_CLIPCHILDREN を持つウィンドウの子ウィンドウには影響を与えません。しかし、WS_CLIPCHILDREN スタイルを持たないウィンドウは、WS_CLIPCHILDREN を持つウィンドウと出会うまで再帰的に有効または無効になります。次のフラグは、RedrawWindow 関数により影響を受けるウィンドウを制御します。

    • RDW_ALLCHILDREN   子ウィンドウがあれば、再描画操作に含めます。

    • RDW_NOCHILDREN   子ウィンドウがあれば、再描画操作から除外します。

戻り値

正常にウィンドウが再描画された場合は、0 以外を返します。それ以外の場合は 0 を返します。

解説

RedrawWindow メンバ関数を使用して、デスクトップ ウィンドウの一部を無効にすると、そのウィンドウに WM_PAINT メッセージは送信されません。デスクトップを再描画するには、アプリケーションで CWnd::ValidateRgnCWnd::InvalidateRgnCWnd::UpdateWindowRedrawWindow のいずれかが使用される必要があります。

必要条件

ヘッダー : afxwin.h

参照

参照

CWnd クラス

階層図

その他の技術情報

CWnd のメンバ