CWnd::RedrawWindowBOOL RedrawWindow( LPCRECT lpRectUpdate = NULL, CRgn* prgnUpdate = NULL, UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE ); 返回值:如果窗口被成功地重畫,則返回非零值;否則返回0。
參數: 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消息。下面的標志控制著何時產生重畫動作。除非指定了這些位,否則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 在重畫操作中不包括子窗口,如果有的化。
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報。