|
CWnd::RedrawWindow
BOOL RedrawWindow(
LPCRECT lpRectUpdate = NULL,
CRgn* prgnUpdate = NULL,
UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE
); 返回值:如果窗口被成功地重畫,則返回非零值;否則返回0。 參數(shù):
lpRectUpdate 指向一個RECT結構,其中包含了更新區(qū)域的坐標。如果prgnUpdate中包含了有效的區(qū)域句柄,則這個參數(shù)將被忽略。
prgnUpdate 表示了更新區(qū)域。如果prgnUpdate和lpRectUpdate都為NULL,則整個客戶區(qū)將被加入更新區(qū)域。 flags 下面的標志被用于使窗口無效: RDW_ERASE 使窗口在重畫時接收到一個WM_ERASEBKGND消息。必須同時指定RDW_INVALIDATE標志;否則RDW_ERASE標志將沒有效果。
RDW_FRAME 使窗口非客戶區(qū)中與更新區(qū)域重疊的任何部分接收到一條WM_NCPAINT消息。必須同時指定RDW_INVALIDATE標志,否則RDW_FRAME標志將沒有效果。
RDW_INTERNALPAINT 使一條WM_PAINT消息被傳遞到窗口,而不管窗口是否包含一個無效區(qū)域。
RDW_INVALIDATE 使lpRectUpdate或prgnUpdate(僅有一個可能為NULL)無效。如果這個兩個參數(shù)都為NULL,則整個窗口都無效。
下面的標志被用于使窗口有效: RDW_NOERASE 禁止任何未處理的WM_ERASEBKGND消息。
RDW_NOFRAME 禁止任何未處理的WM_NCPAINT消息。這個標志必須與RDW_VALIDATE一起使用,通常也與RDW_NOCHILDREN一起使用。這個選項必須小心使用,因為它可能會使窗口的某些部分不能正確地畫出。
RDW_NOINTERNALPAINT 禁止任何未處理的內(nèi)部WM_PAINT消息。這個標志不影響從無效區(qū)域產(chǎn)生的WM_PAINT消息。
RDW_VALIDATE 使lpRectUpdate或prgnUpdate(僅有一個可能為NULL)有效。如果這個兩個參數(shù)都為NULL,則整個窗口都有效。這個標志不影響內(nèi)部WM_PAINT消息。
下面的標志控制著何時產(chǎn)生重畫動作。除非指定了這些位,否則RedrawWindow函數(shù)不會執(zhí)行繪圖動作。
RDW_ERASENOW 如果有必要,則在函數(shù)返回前使涉及的窗口(如RDW_ALLCHILDREN和RDW_NOCHILDREN標志所指定的)接收到WM_NCPAINT和WM_ERASEBKGND消息。WM_PAINT消息將被延緩。
RDW_UPDATENOW 如果有必要,則在函數(shù)返回前使涉及的窗口(如RDW_ALLCHILDREN和RDW_NOCHILDREN標志所指定的)接收到WM_NCPAINT,WM_ERASEBKGND和WM_PAINT消息。
在缺省情況下,RedrawWindow函數(shù)影響的窗口依賴于指定的窗口是否具有WS_CLIPCHILDREN風格。WS_CLIPCHILDREN窗口的子窗口不會被影響。但是,那些不具有WS_CLIPCHILDREN風格的窗口將被遞歸地有效或無效,直到遇見具有WS_CLIPCHILDREN風格的窗口。下面的標志控制著RedrawWindow函數(shù)將影響哪些窗口:
RDW_ALLCHILDREN 在重畫操作中包含子窗口,如果有的話。
RDW_NOCHILDREN 在重畫操作中不包括子窗口,如果有的化。
|
|
|
來自: herowuking > 《C 》