Bewegte Strichgrafik



  • Hallo,

    in einer Dialogfeldanwendung habe ich mehrere weiße Fenster, die von CWnd abgeleitet wurden. In jedem Fenster wandert eine Sinusfunktion von links nach rechts. Die Sinusfunktion baue ich mit LineTo-Methoden auf. Das sieht ganz ansprechend aus. Die Bewegung erreiche ich dadurch, dass ich die alte Funktion mit der Hintergrundfarbe (weiß) überschreibe und die neue etwas daneben in schwarz zeichne. Es entsteht dann der Eindruck, dass die Sinusfunktion wandert. Leider sieht die Animation bei schneller Bewegung nicht schön aus, weil die Sinusfunktion flimmert. Es ist ja im Prinzip nur eine Strichgrafik, die sich flimmerfrei bewegen soll. Wer kann mir Tipps geben, wie ich flimmerfreie Bewegungen hinbekomme?

    Danke für Eure Hilfe
    Alex



  • Doublebuffering ist dein Stichwort, Du zeichnest im Speicher (MemDC erzeugen) deine Sinuslinie und Blittest dann das fertige Ergebnis über die alte Zeichnung.

    MemDC = erzeuge einen neuen DC aus deinem ZeichenDC erstelle ein Bitmap in der größe deines Zeichenbereiches, selektiere das Bitmap in den erstellen DC zeichne in die Bitmapüber den DC, Blitte alles aus den MemDC in dein Zeichebereich. Fertig!

    Gruß


  • Administrator

    Und hier noch einen fertigen MemDC den man einfach implementieren kann:
    http://www.codeproject.com/gdi/flickerfree.asp

    Grüssli


Anmelden zum Antworten