SDI-Clientbereich, keine Anzeige bei zu oftem redraw?
-
hi,
Mein Problem:
Ich zeichne etwas in den Clientbereich einer SDI-Anwendung,
also in der Methode OnDraw der View-Klasse.Eine Funktion des Programms ist das Verschieben der Ansicht
(per Drap&Drop mit der Mouse).Funktioniert auch ganz gut, die komplette Ansicht wird direkt
beim Verschieben neu gezeichnet indem ich in OnMouseMove eine
Variable verändere und dann Invalidate(); aufrufe.Wenn ich nun allerdings einige Zeit lang verschiebe verschwindet
irgendwann der komplette Inhalt und wird garnicht mehr gezeichnet.An dem Wert der Variable kann es nicht liegen, da auch alles gelöscht
wird, was NICHT von der Variable abhängt.Die Methode OnDraw scheint also garnicht mehr aufgerufen zu werden.
Kann mir jemand helfen?
Danke

-
Wiedermal das Nichtlöschen bzw. das vergessene Deselektieren von GDI-Handles.
-
hi,
Danke für die Antwort, aber ich könnte noch etwas Hilfe brauchen:
Wie mach ich das ganze?
Ich zeichne im Moment mit dem CDC-Pointer, der bei OnDraw direkt
übergeben wird, von daher frag ich mich wie ich das jetzt angehen muss.Danke
-
Ich habe mich mal kundig gemacht und jetzt wenigstens verstanden wie das mit dem löschen gemeint war.
Leider funktioniert das trotzdem noch nicht, ich habe folgendes versucht:
Am Ende von OnDraw() weise ich dem CDC-Pointer den Pen zu, der vorher auf dem Objekt lag (den speichere ich beim auswählen eines anderes Pens ab).
Alle von mir erzeugten Pens lösche ich mit DeleteObject(pen);
Es werden keine anderen Objekte als pens verwendet.
Eine Hilfe wäre nett, ich komme nicht weiter

danke

-
!!! Code zeigen !!!