Pregunta

Una aplicación API de Windows por defecto no tiene doble búfer. En su lugar, se hace un muy, muy buen trabajo de asegurar que sólo lo que hay que sacar es dibujado, y que le da una apariencia perfecta. Sin embargo, cuando el tamaño de la ventana, la totalidad de las necesidades que hay que volver a dibujar, y esto hace que el parpadeo entre los controles, el fondo de la ficha, ya veces el blanco de la ficha.

Así que mi pregunta es, ¿cuál es la forma más fácil de soportar el doble buffer en mi solicitud?

¿Fue útil?

Solución

Crear un mapa de bits del tamaño de la ventana, hacer que en ese mapa de bits, y que blit de nuevo en la ventana cuando haya terminado.

Se puede hacer una muy recta de avance de reemplazo en el lugar de su código existente. En lugar de utilizar un contexto de dispositivo que hace que en la ventana, utilizar uno que hace que en el mapa de bits, y sólo utilizar el DC original al blit la parte posterior de mapa de bits.

Asegúrese de mantener el mapa de bits en todo - no crearlo en cada llamada pintura. Sólo tiene que volver a crearla cuando se cambia el tamaño de la ventana.

Otros consejos

Tome un vistazo al siguiente artículo: Muestra libre de parpadeo El uso de un fuera de la pantalla DC .

  

En este artículo se describe una técnica para   dibujo de un contexto de dispositivo ventana   (DC) de tal manera que la pantalla   no parpadear. La técnica es   muy simple y fácil de implementar.

he aprendido a evitar el parpadeo de este tutorial hace varios años.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top