GDI ではダブル バッファリングを実現できましたが、GDI+ では実現できませんでした。ちらつきなしでpng画像を表示したいと思います。さらに、ある時点で、GDI+ を使用して png 画像でアニメーションを実現したいので、GDI+ でダブル バッファリングする方法を知ることが不可欠です。
ISTREAM を介して png 画像を Image オブジェクトに取得することができました: これは、問題が発生している場所を理解するのに役立つコードの一部です。
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 を screenDC に描画しようとすると、画像が表示されません!
誰かがGDI plusでダブルバッファする方法について正しい方向に向けてくれますか? ありがとうございました