La Red de Conocimientos Pedagógicos - Aprendizaje de redacción de artículos/tesis - Una breve discusión sobre el parpadeo de la pintura MFC

Una breve discusión sobre el parpadeo de la pintura MFC

Usar temporizadores y DC Paint para animar no es confiable. El simple funcionará, pero el complicado definitivamente no funcionará. De lo contrario, no existiría OpenGl, y muchos efectos de animación y efectos 3D incluso requieren una GPU.

SetTimer(1, 10, 0); // La animación general requiere 1/20 segundos para una animación continua (efecto de 20 cuadros por segundo), que es un temporizador de 50 milisegundos, no tan corto como 10 milisegundos.

El método de optimización más simple: en OnTimer, calcule dos puntos, xunhuan y xunhuan-1, para formar un RECT, y use InvalidateRect) en lugar de Invalidate para lograr un redibujado parcial.

El doble buffer puede optimizar muy bien su programa. El proceso es un poco complicado. Para el memDC de las variables miembro del cuadro de diálogo, OnPaint crea un DC compatible por primera vez, OnTimer agrega un conjunto de líneas (MoveTo+LineTo) y OnPaint solo requiere BitBlt.