invalidate函數(shù) Invalidate()這個函數(shù)有什么用?
Invalidate()這個函數(shù)有什么用?Void invalidate(bool ferase=true)此函數(shù)用于使整個窗口客戶端區(qū)域無效。無效的窗口客戶區(qū)意味著重繪。例如,如果被其他窗口覆蓋的窗
Invalidate()這個函數(shù)有什么用?
Void invalidate(bool ferase=true)
此函數(shù)用于使整個窗口客戶端區(qū)域無效。無效的窗口客戶區(qū)意味著重繪。例如,如果被其他窗口覆蓋的窗口成為前景窗口,則先前覆蓋的部分無效,需要重新繪制。Windows將WM放在應用程序的消息隊列uuPaint消息中。MFC為窗口類提供WM,Onpaint是paint的消息處理功能。Onpaint負責重新繪制窗口。視圖類有一些例外。OnDraw函數(shù)在視圖類的OnPaint函數(shù)中調(diào)用,實際的重新繪制由OnDraw完成。當參數(shù)bErase為true時,重繪區(qū)域中的背景將被擦除,否則,背景將保持不變。
它與updatewindow()的不同之處在于updatewindow()的功能是立即重新繪制窗口。在調(diào)用諸如invalidate之類的函數(shù)后,窗口不會立即重新繪制,這是由于WMèpaint消息的優(yōu)先級非常低。它需要等待消息隊列中的其他消息被發(fā)送,然后才能進行處理。調(diào)用updatewindow函數(shù)使WM_u2;Paint直接發(fā)送到目標窗口,從而立即重新繪制窗口。
MFC invalidate FALSE和TRUE的區(qū)別?
你好,我是[我妻子的名字叫雅雅]。我很高興為你回答。在這個函數(shù)的描述中,非常清楚:void invalidate(bool bErase=true)參數(shù):bErase決定是否使用WM_u2;Send WM before paint message_u2;Erasebkgnd,即默認情況下(true),發(fā)送后臺刷新消息,然后刷新前臺。False只刷新前景,也就是說,只觸發(fā)onpaint函數(shù)。一般來說,這個參數(shù)是沒有意義的。它只能用于非常少的透明度和優(yōu)化技術。因此,默認為true。換句話說,您不需要添加參數(shù)。比較專業(yè)的理科知識,歡迎關注我。如果你喜歡我的回答,也請給我表揚或轉發(fā),你的鼓勵是支持我寫下來的動力,謝謝。