GDI Leak?



  • Hi, ich spiel grad einwenig mit Visual Styles rum, und im folgenden Code tritt bei mir ein GDI Resource Leak auf. Pro redraw steigt mein GDI Object Count um eins an. Ich hab das Problem auf diese Methode eingekreist kann es mir aber ehrlich gesagt nicht wirklich erklären.
    Kann mir jemand verraten ob er da etwas entdeckt was problematisch sein könnte? Irgendwie habe ich nämlich das gefühl das

    DrawThemeBackground(theme,hdcmem,10,0,&crc,0 ); daran Schuld ist.

    void browser_modul::on_paint(HDC hdc ,PAINTSTRUCT& ps){
            RECT client;
            GetClientRect(handle,&client);
            HDC hdcmem = CreateCompatibleDC(hdc);
            HBITMAP hbm = CreateCompatibleBitmap(hdc,client.right,client.bottom);
            HGDIOBJ oldbm = SelectObject(hdcmem,hbm);
    
            if (theme)
            {
                RECT crc;
                GetClientRect(handle,&crc);            
                DrawThemeBackground(theme,hdcmem,10,0,&crc,0  );
            }
    
            BitBlt(hdc,0,0,client.right,client.bottom,hdcmem,0,0,SRCCOPY);
    
            SelectObject(hdcmem,oldbm);
            DeleteObject(hdcmem);
            DeleteObject(oldbm);
        }
    

    BR
    evilissimo



  • man o man, hat sich schon erledigt. ich hab oldbm gelöscht muss aber hbm löschen -.- 🙄

    DeleteObject(oldbm);
    

    Thx anyway 🙂

    BR


Anmelden zum Antworten