看板 C_and_CPP 關於我們 聯絡資訊
目前我是想把我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