我設法實現GDI的雙緩衝,但不是與GDI +。我想顯示一個沒有閃爍的PNG圖像。此外,在某些時候,我還希望使用GDI +實現png圖像的動畫,因此瞭解如何使用GDI +加倍緩衝區勢在必行。GDI +雙緩衝
我已經得到了一個PNG圖像轉換成一個Image對象,通過一個IStream:這裏是我的代碼的一部分,這將有助於你明白的地方我有麻煩:
memmove(pBlock,pImage, size);
CreateStreamOnHGlobal(hBlock, FALSE, &pStream);
Graphics graphics(memDC);
Image image(pStream);
int image_width;
int image_height;
image_width= image.GetWidth();
image_height=image.GetHeight();
graphics.DrawImage(&image, posX,posY, image_width, image_height);
BitBlt(hdc, 0, 0, image_width, image_height, memDC, 0, 0, SRCCOPY);
注:如果我將png圖像直接繪製到屏幕DC(hdc),它呈現很好。但是,當我試圖首先將圖像繪製到一個memDC上,然後將該memDC繪製到屏幕DC上時,沒有圖像出現!
有人可以請我指出正確的方向,如何有人將GDI加倍緩衝區?謝謝
根本沒有錯誤檢查。所以當然你不知道爲什麼它不起作用。 – 2013-03-10 17:50:06