Fensterinhalt erst nach dem Zeichnen anzeigen



  • Ich habe ein Problem. Ich zeichne mit GDI+ einen mathematischen Graphen in ein Fenster. Dieser Graph besteht aus dutzenden Knoten (Images) und hunderten Kanten (Linien).

    Wird nun die OnDraw Methode des Fensters aufgerufen, kann ich dem Graph auf langsamen PCs beim Zeichnen quasi "zuschauen", weil das Zeichnen bis zu drei Sekunden beansprucht.

    Das stört visuell gewaltig. Ich habe mit der Zeitdauer nicht so das Problem, aber mir wäre es lieber, wenn er den Fensterinhalt lieber im Hintergrund zeichnen würde und erst anzeigt, wenn er damit fertig ist statt in Echtzeit zu zeichnen.

    Ich könnte dazu natürlich einfach den Graphen in ein großes Bitmap zeichnen lassen und das beim OnDraw über das Fenster zeichnen, aber gibt es da einen direkteren Weg? Kann ich dem Fenster irgendwie temporär verbieten sich auf dem Bildschirm zu zeichnen, während ich den Fensterinhalt bearbeite? Kann ich das Fenster DC irgendwie temporär "detachen" ohne dass mir das Programm abstürzt?



  • Such mal nach Double Buffering oder Back-Buffer. Ist die sauberste Lösung.


Anmelden zum Antworten