1.18.2010

WM_PAINT, InvalidRect, ValidRect, and UpdateWindow

超複雜。

UpdateWindow, WM_PAINT, InvalidateRect, ValidateRect..


大概是說:GWES 會為每個 Windows mantain 一個 invalid region list : 哪些區域的圖形已經過時,需要重畫了。
而且當 invalid region 不是空的時候,就會送出 WM_PAINT 給 Windows (自動嗎?)。

Windows Application 在 call BeginPaint 時,GWES 就會把 invalude region list 清空 (因為你已經要開始重畫了)


因為 WM_PAINT 的 message priority 很低,所以系統很忙的時候,call InvalidRec( ) 可能會很久以後才會送出 WM_PAINT。
如果要立刻送,可以自己call UpateWindows( )。這個funciton 會立刻送出 WM_PAINT 給 application。

沒有留言: