作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題[問題] double buffer的問題
時間Tue Jan 12 14:57:39 2010
目前我是想把我load的圖秀出來
我看了一些文件
我得到的概念是
先利用createcompatibledc 丟入hdc 去得到相容的dc (hdc_mem)
用LoadBitmap 函式 去load一張圖 (hBmp)
然後要畫圖的話 先用SelectObject(hdc_mem , hBmp) 把圖放到這個DC中
以上是在WM_CREATE時去做
當WM_PAINT時
再用BitBlt( 目的hdc , 來源hdc_mem );
此時如果我有個timer 一直呼叫
Invalidate( hWnd, NULL, TRUE);
也是一直狂閃
但是我實在不知道double buffer到底該如何修改我以上的演算法....
我找了google上的資料 通常都是利用一些內建函式例如 Ellipse等在
hdc_mem上去畫圖 最後再用BitBlt丟到hdc上
概念上感覺和上面的步驟很像~ 不直接對hdc畫
可是我一直找不到正確的做法....
如何可以解決我閃爍的問題....
有請實做過的人給點意見 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.147.15.66
→ TeaEEE:你視窗底色是白色嗎? 01/12 17:57
→ ADF:把你的code貼出來吧.. 01/12 18:51
→ QQ29:可以問一下 invalidaterect只是給 PAINTSTRUCTURE那個結構 01/12 23:54
→ QQ29:資訊 利用BeginPaint抓出來 就算我畫的比無效區域範圍還大 01/12 23:55
→ QQ29:也沒關係嗎? invalidaterect只是負責傳遞這個參數和WM_PAINT? 01/12 23:55
→ ADF:你把第三個參數設FALSE試試看 01/13 01:47