FLimmern bei GDI+

Rene42

Erfahrenes Mitglied
Hi Leute,

schreibe gerade etwas in GDI+ und habe ein kleines Problem.:

Die Anwendung flimmert wie verrückt. Das kommt sicherlich daher, dass ich eine Bewegung darstellen will und jedes mal wenn ein neues Frame gezeichnet wird den Hintergrund löschen. Ein bisschen Forschen hat mich darauf gebracht, dass ich mit einem Doppelbuffer arbeiten muss.

Wenn ich das richtig verstehe funktioniert dies nach folgendem Prinzip:

1. Buffer wird mit einer Farbe gefüllt
2. Objekte werden in den Buffer gezeichnet.
3. Nun wird der Buffer Pixel für Pixel auf den Bildschirm gezeichnet

Leider weiß ich nicht wie dies in Code umzusetzen ist. Wäre dankbar wenn einer ein Beispiel posten würde in dem z. B. ein Kreis über den Bildschirm bewegt wird.

Rene42
 
DoubleBuffer bedeutet ungefähr so viel wie.
Für dein Bild stehen 2 Speicher zur Verfügung.

Es wird Speicher 1 geladen und angezeigt.
Während Speicher 1 angezeigt wird wird Speicher 2 geladen.
Speicher 2 wird angezeigt, Speicher 1 geladen, Speicher 1 wird angezeigt , Speicher 2 geladen ...

Im Prinzip gibt es eine Eigenschaft DoubleBuffer bei deinem die du auf true setzen musst.
(Glaube allerdings ist protected, musst also erst von diesem Control ableiten)

Ansonsten poste doch mal Code wie du zeichnest.

Zum Schluss noch ein Hinweis:
Das Flimmern wirst du wohl nie vollends wegbekommen.
Dann müsstest du wohl schon eher mit DirectX oder OpenGl arbeiten.
 
Zurück