C ++ GDI +加载图像增加了内存请求

时间:2011-10-27 17:53:45

标签: c++ image gdi+ flush

我有一种加载图片的方法:

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绘制的内容来加载另一张图片吗?

0 个答案:

没有答案