以下のコードを実行するたびに、アプリケーションのタスク マネージャーのメモリが際限なく増加し続けます。ここでスタックオーバーフローで同様の質問を見つけ、彼らが述べたようにいくつかの DeleteObject 呼び出しを行いましたが、このコードの実行時に増え続けるメモリを解決しませんでした。
これはどのように解決できますか?私は何を間違っていますか?
SetControlPicture(const UINT ID_PICTURE_CONTROL)
{
CImage image;
CBitmap bitmap;
HRESULT hresult;
CStatic* pItem = (CStatic*)GetDlgItem(ID_PICTURE_CONTROL);
hresult = image.Load(_T("./Data/Images/RED_ON.png"));
if(hresult != E_FAIL)
{
HBITMAP hBitMap = image.Detach();
bitmap.Attach(hBitMap);
HBITMAP hBitMapPrev = pItem->SetBitmap(bitmap);
if (hBitMapPrev)
{
DeleteObject(hBitMapPrev); // *** do not forget to delete the previously associated bitmap
}
DeleteObject(hBitMap);
}
}