共用方式為


CWnd::RedrawWindow

BOOL RedrawWindow(
   LPCRECT lpRectUpdate = NULL,
   CRgn* prgnUpdate = NULL,
   UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE 
); 

參數

  • lpRectUpdate
    的長度 的點結構包含更新矩形的座標。 如果 prgnUpdate 包含有效區域控制代碼,則會忽略這個參數。

  • prgnUpdate
    識別要更新的區域。 如果 prgnUpdate 和 lpRectUpdate 是 NULL,整個工作區加入更新區域。

  • flags
    下列旗標用於失效視窗:

    • 當視窗重新繪製時,RDW_ERASE 使得 Windows 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,整個 Windows 驗證。 這個旗標不會影響內部 WM_PAINT 訊息。

    下列旗標重新繪製控制項時發生。 除非這些欄位的其中一個所指定,繪製由 RedrawWindow 函式不會執行任何動作。

    • RDW_ERASENOW 導致受影響的視窗 (由 RDW_ALLCHILDRENRDW_NOCHILDREN 旗標) 必要時,收到 WM_NCPAINTWM_ERASEBKGND 訊息,,在函式傳回之前。 WM_PAINT 訊息延後。

    • RDW_UPDATENOW 導致受影響的視窗 (由 RDW_ALLCHILDRENRDW_NOCHILDREN 旗標) 在函式傳回之前,視需要收到 WM_NCPAINTWM_ERASEBKGNDWM_PAINT 訊息。

    根據預設, RedrawWindow 函式的影響視窗取決於指定的視窗是否具有 WS_CLIPCHILDREN 樣式。 子視窗 WS_CLIPCHILDREN 視窗不會受到影響。 不過,並非 WS_CLIPCHILDREN 視窗的視窗會遞迴地驗證或無效,直到遇到 WS_CLIPCHILDREN 視窗。 視窗 RedrawWindow 函式受到影響的下列旗標控制項:

    • RDW_ALLCHILDREN 繪製的作業包括子視窗,如果有的話。

    • RDW_NOCHILDREN 從重新繪製作業中排除的子視窗,如果有的話。

傳回值

不是零,如果視窗已成功重新繪製的,則為 0。

備註

RedrawWindow 成員函式用於失效一部分的桌面視窗時,該視窗不 WM_PAINT 接收訊息。 若要繪製桌面,應用程式應使用 CWnd::ValidateRgnCWnd::InvalidateRgnCWnd::UpdateWindowRedrawWindow

需求

Header: afxwin.h

請參閱

參考

CWnd 類別

階層架構圖