6.14.2010

WTL - request to send WM_PAINT message

WM_PAIN message 被送出的機會有:
  • OS 發現你的視窗區域需要重劃了,例如:被其他windows 蓋過,size 改變..
  • 你自己呼叫 function,叫 OS 送 message 給你
WTL 里要呼叫 Invalidate( ),實際上是 ATL implement 的,不是 WTL。
在 altwin.h 。
實際上他也是呼叫 InvalidateRect( ) 而已。


順便寫一下 CPaintDC

原本在 Win32SDK 中,要對 DC 作動作,都要 beginpaint, get xx 等一堆,然後畫完又要 endpaint.. etc.

CPaintDC 就把剛剛的動作包裝起來,在 constructor 中作 BeginPain,在Destrctor 作 EndPaint。

又 CPaintDC 繼承自 CDCT。

CDCT 是 WTL 把所有 Win32 的 DC 繪圖包裝起來的 class。
所以一旦生成 CPaintDC 後,就可以任意使用 DC繪圖 function 了。

沒有留言: