我有一种加载图片的方法:
RESULT CChildView::OnLoadPng( WPARAM wparam, LPARAM lParam )
{
CGdiPlusBitmapResource* pBitmap = new CGdiPlusBitmapResource;
if (pBitmap->Load(wparam, _T("PNG")))
{
CClientDC dc(this);
Gdiplus::Graphics graphics(dc);
Gdiplus::Color white(255, 255, 255, 255);
graphics.Clear(white);
graphics.DrawImage(*pBitmap, 0, 0);
}
else
{
AfxMessageBox("Failure loading image");
}
delete pBitmap;
return 0L;
}
问题是我多次调用此方法,并且每次内存增加越来越多。图像在最后一个重叠,我不希望这样。我在graphics.DrawImage之前尝试过graphics.Flush(),但这不起作用。
唯一有效的方法就是摧毁窗户,但是我再也无法加载图片了。
你知道如何刷新/清除用graphics.DrawImage绘制的内容来加载另一张图片吗?