Question

Une application winapi par défaut ne dispose pas du double-tampon. Au lieu de cela, il fait un très, très bon travail pour assurer que seul ce qui doit être tiré est tiré, et qui lui donne une apparence transparente. Cependant, lorsque vous redimensionnez la fenêtre, les besoins entiers chose d'être redessinée, ce qui provoque vacillante entre les contrôles, l'arrière-plan sur l'onglet, et parfois le blanc de l'onglet.

Alors, ma question est, quelle est la meilleure façon de soutenir le double buffering dans ma demande?

Était-ce utile?

La solution

Créer une image bitmap de la taille de la fenêtre, rendu dans ce bitmap et blit que de nouveau dans la fenêtre lorsque vous avez terminé.

Vous pouvez faire dans votre code existant un remplacement assez en place simple. Au lieu d'utiliser un contexte de dispositif qui donne dans la fenêtre, utiliser une qui rend dans le bitmap, et utiliser uniquement le DC d'origine pour blit l'arrière bitmap.

Assurez-vous de garder le bitmap autour - ne pas créer dans chaque appel de peinture. Vous avez juste besoin de le recréer lorsque la fenêtre est redimensionnée.

Autres conseils

Jetez un oeil à l'article suivant: Affiche Flicker-libres à l'aide d'un écran hors DC .

  

Cet article décrit une technique pour   dessin d'un contexte de dispositif de fenêtre   (DC) de telle sorte que l'écran   ne clignote pas. La technique est   très simple et facile à mettre en œuvre.

J'appris à éviter vacillante de ce tutoriel il y a plusieurs années.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top