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_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。
備註
當 RedrawWindow 成員函式用於失效一部分的桌面視窗時,該視窗不 WM_PAINT 接收訊息。 若要繪製桌面,應用程式應使用 CWnd::ValidateRgn、 CWnd::InvalidateRgn、 CWnd::UpdateWindow或 RedrawWindow
需求
Header: afxwin.h