C
hustbaer schrieb:
Das heißt ja, dass ichvor DeleteDC selber zu sorgen habe, dass das Bitmap, Pen, Brushes etc. mit DeleteObject gelöscht werden!?
Nein. Du musst NACHDEM du den letzten DC gelöscht hast der ein Objekt verwendet dieses Objekt löschen.
Wenn du es "by the book" machen willst, dann selektierst du auch noch vor dem löschen des DCs wieder alle Objekte rein mit denen er angelegt wurde. Also inetwa so:
void foo()
{
HBRUSH brush = CreateSolidBrush(...); // eigene brush her
HDC dc = CreateDC(...); // eigenen DC her
HBRUSH oldbrush = static_cast<HBRUSH>(SelectObject(dc, brush)); // eigene brush in eigenen DC reinstecken
// ...
SelectObject(dc,oldbrush); // alte brush wieder in den DC reinstecken
DeleteDC(dc); // DC löschen
DeleteObject(brush); // eigene brush löschen
}
Ähm ja...das implizierte mein Post . Also ich mach das immer in einem Schritt, da man sich dann die Variable 'brush', in Deinem Beispiel, sparen kann!
DeleteObject(SelectObject(dc, oldbrush));
DeleteDC(dc);