Bitmap



  • ich habe noch ein problem, folgender codeausschnitt:

    static HANDLE hBitmap

    hBitmap = (HBITMAP)LoadImage(NULL,"test.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

    switch(message)
    {
    case WM_PAINT:
    {
    PAINTSTRUCT ps;
    HDC hDC;

    hDC = BeginPaint(hWnd, &ps);
    {

    HDC BhDC = CreateCompatibleDC(hDC);
    SelectObject(BhDC,hBitmap);
    BitBlt(hDC,0,0,640,480,BhDC,0,0,SRCCOPY);
    }
    EndPaint(hWnd, &ps);
    return 0;
    }

    immer wenn ich das fenster minimiere und wieder herstelle ist die bitmap weg, was mache ich falsch?? das gleiche passiert auch wenn irgendein fenster die bitmap verdeckt und wieder freigiebt???



  • Gieb das Objekt wieder frei!



  • Naja, das Object (Bitmap) braucht er ja noch.
    Aber es bleibt in BhDC "gefangen", da es immer nur in einen Gerätekontext gleichzeitig gesetzt werden kann.
    Ein DeleteDC(BhDC); vor return 0; sollte das Problem beheben oder du machst BhDC auch static und initialisierst es schon in WM_CREATE.



  • jo, thx


Anmelden zum Antworten