GDI 繪圖的幾個技巧

 

1. 解決屏幕閃爍的雙緩衝技術:


1) 將所要繪製的元素一次性繪製到後臺DC,然後將後臺DC拷貝到屏幕DC.


2) 重寫擦除窗體背景函數BOOL OnEraseBkgnd(CDC* pDC) ,直接return tuere.



2.用對象來管理GDI對象:在構造函數中創建GDI對象,在析構函數中釋放.

3. 髒矩形技術實現快速平滑的動畫繪製,實現步驟:
1)將背景窗口內容拷貝到一個內存DCdcScreen.
2) 根據移動圖元上一位置和當前位置計算被弄髒的矩形區域dirty_rect
3)聲明一個內存DC drawDC,大小爲dirty_rect.
4) dcScreendirty_rect.所在內容拷貝到drawDC.
5) 將圖元繪製到drawDC(根據當前位置,計算offset).
6)拷貝drawDC到屏幕DCdirty_rect.

4.圖元半透明繪製技術, 在髒矩形技術的第四步基礎上:
5) 將圖元繪製到內存DC drawDC2,並設置一個背景色back_color.
6) drawDCdrawDC2位圖信息進行帶color_key(back_color)的alpha混合疊加.
7)拷貝drawDC到屏幕DCdirty_rect.
注意: drawDCdrawDC2位圖信息進行alpha混合疊加時,32 位下使用DIB,其它的
使用DDB,否則速度極慢.
我測試過此效果,速度還是可以,GDI+快得多了.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章