古詩詞大全網 - 字典詞典 - MFC中的invalidate函數是什麽意思啊?

MFC中的invalidate函數是什麽意思啊?

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

類似的還有下面的兩個函數:

UpdateWindow()只向窗體發送WM_PAINT消息,在發送之前判斷GetUpdateRect(hWnd,NULL,TRUE)看有無可繪制的客戶區域,如果沒有,則不發送WM_PAINT。

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