Frage

Eine Standard winapi Anwendung nicht Double-Buffering. Stattdessen hat es eine sehr, sehr gute Arbeit geleistet, sicherzustellen, dass nur das, was gezeichnet werden muss gezogen, und das gibt ihm ein nahtloses Aussehen. Wenn Sie jedoch das Fenster, die ganze Sache Bedürfnisse die Größe neu gezeichnet werden, und dies führt zu Flackern zwischen den Kontrollen, den Hintergrund auf der Registerkarte, und manchmal das Weiß der Registerkarte.

Also meine Frage ist, was ist der einfachste Weg, das doppelte Pufferung in meiner Anwendung zu unterstützen?

War es hilfreich?

Lösung

Erstellen Sie eine Bitmap, die Größe des Fensters, machen in dieser Bitmap und blit, dass in das Fenster zurück, wenn Sie fertig sind.

Sie können ein tun ziemlich geradlinig in-Place-Ersatz in Ihrem vorhandenen Code. Statt einen Gerätekontext zu verwenden, die in das Fenster macht, verwenden Sie eine, die in das Bitmap macht, und nur die ursprünglichen DC verwenden, um die Bitmap zurück auf blitten.

Seien Sie sicher, dass die Bitmap herum zu halten - erzeuge es nicht in jeder Farbe Anruf. Sie müssen es einfach nur neu zu erstellen, wenn die Fenstergröße verändert wird.

Andere Tipps

Werfen Sie einen Blick auf die folgenden Artikel: flimmerfreie Displays Verwendung eines Off-Screen-DC .

  

Dieser Artikel beschreibt eine Technik für   Zeichnung zu einem Fenster Gerätekontext   (DC) derart, dass der Bildschirm   nicht flimmern. Die Technik ist   sehr einfach und leicht zu implementieren.

Ich habe gelernt, wie man aus diesem Tutorial mehrere Jahre zu verhindern Flimmern vor.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top