超複雜。
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。
沒有留言:
張貼留言