[API] Grafikproblem

31/10/2011 - 19:33 von Heinz-Mario Frühbeis | Report spam
Hallo!

Ich habe im Moment ab und zu das Problem, das es beim Resize eines
API-Fensters zu Grafik"fehlern", -"erscheinungen" kommt. Bisweilen ist dann
sogar das komplette Fenster "weg".

Mein erster Gedanke war "natürlich" Speicherleak.
Das habe ich durchforstet und es scheint, das alles ordnungsgemàß beendet
wird/ist; alle erstellten Objekte selektiere ich vor dem "Delete" in den DC
und entferne sie dann.

Wie sieht das denn z. Bsp. mit BeginPaint/EndPaint aus; muss ich da den DC
auch wieder entfernen? Welche Ursachen könnte es denn noch haben?

Für jeden Tipp dankbar und
mit Gruß
Heinz-Mario Frühbeis
 

Lesen sie die antworten

#1 Martin Richter [MVP]
01/11/2011 - 08:07 | Warnen spam
Hallo Heinz-Mario!

Ich habe im Moment ab und zu das Problem, das es beim Resize eines
API-Fensters zu Grafik"fehlern", -"erscheinungen" kommt. Bisweilen ist
dann sogar das komplette Fenster "weg".



Die ganze Zeit ab da...
Das würde auf ein GDI Leak hindeuten.

Nur für den Moment, bis das Fenster wieder minimiert oder maximiert wird...
Das würde auf ein Problem in Deinem WM_PAINT Handler hindeuten oder in
Routinen in denen Du außerhalb von WM_PAINT zeichnest.
Oder überlappende Child-Controls ohne WS_CLIPSIBLINGS.

Wie sieht das denn z. Bsp. mit BeginPaint/EndPaint aus; muss ich da den
DC auch wieder entfernen? Welche Ursachen könnte es denn noch haben?



Man muss beide Funktionenverwenden, sofern man einen WM_PAINT Handler hat.
Sonst muss man nichts machen, außer alle GDI Objekte auch wieder aus
diesem DC zu entfernen und zu entsorgen wenn es Zeit dazu ist.


Martin Richter [MVP] WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written
program is its own hell!" The Tao of Programming
FAQ: http://www.mpdvc.de Samples: http://www.codeproject.com

Ähnliche fragen