古詩詞大全網 - 成語查詢 - Invalidate(FALSE)表示什麽

Invalidate(FALSE)表示什麽

Invalidate(false)表示不擦除背景,直接畫。

Invalidate標記壹個需要重繪的無效區域,並不意味著調用該函數後就立刻進行重繪。類似於PostMessage(WM_PAINT),需要處理到WM_PAINT消息時才真正重繪。以為您Invalidate之後還有其他的語句正在執行,

程序沒有機會去處理WM_PAINT消息,但當函數執行完畢後,消息處理才得以進行。Invalidate只是放壹個WM_PAINT消息在隊列裏,不做別的,所以只有當當前函數返回後,進入消息循環,取出WM_PAINT,才執行PAINT,所以不管Invalidate放哪裏,都是最後的。

擴展資料

Invalidate(FALSE)與Invalidate(TRUE)區別

使用Invalidate(FALSE)函數時,它只會向消息隊列中添加了WM_PAINT消息。

使用Invalidate(TRUE)函數時,它會向消息隊列中添加了WM_ERASEBKGND和WM_PAINT兩個消息。

WM_ERASEBKGND消息的作用以背景色填充客戶區,因此他會將之前繪制的圖像情況,然後響應WM_PAINT消息後,會調用OnPaint函數,進行響應圖像繪制工作。故Invalidate(TRUE)相當於將原來畫的內容清空後,重新繪制。