C ++ GDI + загрузка изображений увеличивает запрос памяти - PullRequest
0 голосов
/ 27 октября 2011

У меня есть метод загрузки изображения:

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.Flush () перед graphics.DrawImage, но это не работает.

Единственное, что сработало, это разрушение окна, но затем я не смог загрузить изображение снова.

Знаете ли вы какой-нибудь способ очистить / очистить то, что было нарисовано с графикой. Рисовать изображение, чтобы загрузить другое изображение?

...