Stread hat folgendes geschrieben : |
Speichert Windows diese Bilder irgendwo und ruft sie immer wieder neu auf? |
Nein, aber solange niemand den Fenstern darunter (z.B. dem Desktop) sagt, dass er sich neu zeichnen soll, kann das System ja nicht wissen, dass das nötig ist. Also bleibt die Schrift erhalten. Gib das einfach mal auf dem Canvas deines Formulars aus, dann siehst du das auch.
Du könntest das eventuell mit
InvalidateRect lösen.
Oder du speicherst dir bei jedem Zeichnen den Bildschirmausschnitt und stellst ihn beim erneuten Zeichnen wieder her. Das birgt aber das Risiko, dass Zeichenfehler sichtbar werden, wenn der Benutzer Fenster verschiebt usw.
Die sinnvollere Lösung ist (auch aus Performancegründen) eher, ein transparentes Fenster zu benutzen.
// EDIT:
Nebenbei:
Wie selten willst du das denn zeichnen? Ich meine
jedesmal den DC des Desktops holen, ein TCanvas erzeugen...

Wie wäre es mit zwischenspeichern? Zum Beispiel in einer eigenen Klasse, die das Zeichnen handelt.