MFC invalidate和RedrawWindow區別


Invalidate()函數是強制系統進行重畫,但是不一定就馬上進行重畫。因為Invalidate()只是通知系統,此時的窗口已經變為無效。強制系統調用WM_PAINT,而這個消息只是Post就是將該消息放入
消息隊列。當執行到WM_PAINT消息時才會對敞口進行重繪。


類似的還有下面的兩個函數:
UpdateWindow()只向窗體發送WM_PAINT消息,在發送之前判斷GetUpdateRecthWnd,NULL,TRUE)
看有無可繪制的客戶區域,如果沒有,則不發送WM_PAINT。

RedrawWindow()則是具有Invalidate()和UpdateWindow()的雙特性。聲明窗口的狀態為無效,
並立即更新窗口,立即調用WM_PAINT消息處理。

invalidate (bool)可以使窗口無效,引起窗口重繪.實際上是向窗口發了一個WM_PAINT消息。
參數的意思是:是否擦除窗口上的元素。比如你在窗口上畫了一條線或在窗口上輸出一串文本,
這些都可以稱為窗口元素或數據.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM