主頁 > 百科知識 > Invalidate 這個函數(shù)有什么用

Invalidate 這個函數(shù)有什么用

時間:2024-11-30 12:45:49 瀏覽量:

void Invalidate( BOOL bErase = TRUE );

該函數(shù)的作用是使整個窗口客戶區(qū)無效。窗口的客戶區(qū)無效意味著需要重繪,例如,如果一個被其它窗口遮住的窗口變成了前臺窗口,那么原來被遮住的部分就是無效的,需要重繪。這時Windows會在應(yīng)用程序的消息隊列中放置WM_PAINT消息。MFC為窗口類提供了WM_PAINT的消息處理函數(shù)OnPaint,OnPaint負(fù)責(zé)重繪窗口。視圖類有一些例外,在視圖類的OnPaint函數(shù)中調(diào)用了OnDraw函數(shù),實際的重繪工作由OnDraw來完成。參數(shù)bErase為TRUE時,重繪區(qū)域內(nèi)的背景將被擦除,否則,背景將保持不變。

它和 UpdateWindow( )區(qū)別在于:

UpdateWindow( )的作用是使窗口立即重繪。調(diào)用Invalidate等函數(shù)后窗口不會立即重繪,這是由于WM_PAINT消息的優(yōu)先級很低,它需要等消息隊列中的其它消息發(fā)送完后才能被處理。調(diào)用UpdateWindow函數(shù)可使WM_PAINT被直接發(fā)送到目標(biāo)窗口,從而導(dǎo)致窗口立即重繪。

TAG: invalidate

© 轉(zhuǎn)乾企業(yè)管理-上海店鋪裝修報建公司 版權(quán)所有 | 黔ICP備2023009682號

免責(zé)聲明:本站內(nèi)容僅用于學(xué)習(xí)參考,信息和圖片素材來源于互聯(lián)網(wǎng),如內(nèi)容侵權(quán)與違規(guī),請聯(lián)系我們進(jìn)行刪除,我們將在三個工作日內(nèi)處理。聯(lián)系郵箱:303555158#QQ.COM (把#換成@)