[問題] double buffer的問題

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2010/01/12 14:57), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/4 (看更多)
目前我是想把我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

01/12 17:57, , 1F
你視窗底色是白色嗎?
01/12 17:57, 1F

01/12 18:51, , 2F
把你的code貼出來吧..
01/12 18:51, 2F

01/12 23:54, , 3F
可以問一下 invalidaterect只是給 PAINTSTRUCTURE那個結構
01/12 23:54, 3F

01/12 23:55, , 4F
資訊 利用BeginPaint抓出來 就算我畫的比無效區域範圍還大
01/12 23:55, 4F

01/12 23:55, , 5F
也沒關係嗎? invalidaterect只是負責傳遞這個參數和WM_PAINT?
01/12 23:55, 5F

01/13 01:47, , 6F
你把第三個參數設FALSE試試看
01/13 01:47, 6F
文章代碼(AID): #1BJ1rcsw (C_and_CPP)
文章代碼(AID): #1BJ1rcsw (C_and_CPP)