Bitmap als GDI wieder löschen
-
hi community,
ich komm beim folgendem Problem einfach nicht weiter:Ich hab eine Dialogbox, auf der ich ein Bitmap Bild gemalt hab. Nun soll allerdings dieses Bild mit einem anderen ersetzt werden. Mein Problem ist jetzt, das ich nicht weiß, wie ich das alte wieder entferne. Beide Bitmaps werden als Resource mitkompiliert.
In der WM_INITDIALOG werden zuerst beide Bilder geladen:
//... hBitmap1 = LoadBitmap(hInstance, BILD_1); hBitmap2 = LoadBitmap(hInstance, BILD_2); //...
Das Hintergrundbild wird in der WM_PAINT Nachricht mit der Funktion BitBlt() gezeichnet und dann die Gerätekontexte mit DeleteDC() und EndPaint() wieder freigegeben.
hDc = BeginPaint(hWin, $ps); ImageHDC = CreateCompatibleDC(NULL); SelectObject(ImageHDC, hBitmap1); //... BitBlt(hDc,0, 0, bitmapX, bitmapY, ImageHDC, 0, 0, SRCCOPY); DeleteDC(ImageHDC); EndPaint(hWin, &ps);
Nur wie krieg ich das Bild wieder weg um ein neues zeichnen zu können?
-
Nachdem du es Freigegeben hast, musst du das Fenster "refreshen"
RECT rc; GetClientRect(hWin, &rc); InvalidateRect(hWin, &rc, true);
-
DeleteObject
-
Danke ihr beiden für die Antworten
Das mit InvalidateRect() funktioniert schon ganz gut, werd aber morgen auch noch die andere möglichkeit Ausprobieren