我想用GDI+做雙快取繪圖。思路是這樣的。記憶體中創建兩個Bitmap位圖,位圖A和位圖B,用1個Graphics物件gpMem與其中1個關聯,需要在A上繪圖時關聯A,需要在B上繪圖時關聯B。但是結果卻實作不了。
測驗代碼和運行結果如下。預期結果應該只用一條線,但實際輸出2條線,也就是說關聯位圖B的代碼是沒有起作用的。請問是我思路的原理就行不通呢,還是其他問題。除了這個方法,我就只能想到“一個Graphics物件關聯一個位圖”,大神們還有其他方法嗎?
CClientDC dc(this) ; //DC
Bitmap bmpA(500 , 500 ) ; // 位圖A
Bitmap bmpB(100 , 100 ) ;// 位圖B
Graphics gpDC(dc) ; // 關聯DC
Graphics gpMem(&bmpA) ; //關聯位圖A
Pen newPen(Color(255,0,0),4) ; //畫筆設定
gpMem.Clear(Color(255,255,255)) ; //背景色全白色
gpMem.DrawLine(&newPen , 200, 200 , 400 , 400) ; //畫一條斜向下的線段
gpMem.FromImage(&bmpB) ; // 關聯位圖B(為什么會無效呢)
gpMem.DrawLine(&newPen , 200, 200 , 400 , 0) ;//畫一條斜向上的線段
gpDC.DrawImage(&bmpA , 0 , 0) ; //輸出到視窗上

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/259589.html
標籤:工具平臺和程序庫
下一篇:spring
