Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Utilizas doble buffer en VB para evitar que el dibujo de la imagen parpadee?

¿Utilizas doble buffer en VB para evitar que el dibujo de la imagen parpadee?

Esto está esperando ser aprendido

Personalmente creo que el temporizador, ya sea una función o un control, no es demasiado preciso. Solo puede activar el reloj 18 veces por segundo. Aproximadamente 0,055 segundos, y ahora la computadora Las capacidades de procesamiento son muy poderosas. Muchos códigos VB deben procesarse en 0,001 segundos, por lo que se debe usar la función GetTickCount en kernel32.dll para procesar el intervalo de tiempo. Valor entero largo, que es el número de milisegundos que han pasado desde que se inició el sistema, muy preciso. La función GetTickCount se utiliza para procesar intervalos de tiempo. Esta función puede producir un valor entero largo, que es el número de milisegundos que han transcurrido desde que se inició el sistema. Es muy precisa, básicamente con una precisión de 0,001 segundos.

Además, intente configurar el dibujo automático de Pictuer en Verdadero.

Una pregunta más, ¿el doble buffering no es más lento ya que hay que hacerlo dos veces?

Encontré una manera de evitar el parpadeo. Primero configure el dibujo automático en Verdadero y luego use Pset para dibujar los puntos. No hay absolutamente ningún parpadeo, pero se puede decir que la eficiencia es peor.

Sería bueno si hubiera una manera mejor.

Lo probé y la eficiencia fue realmente peor.

Opción explícita

Función de declaración privada GetTickCount Lib "kernel32" () As Long

Private Sub Command1_Click()

Const Tz As Largo = 10

Dim i Mientras Largo, j Mientras Largo, k Mientras Largo, n Mientras Largo

Dim Px Mientras Largo, Py Mientras Largo

Dim C Tan largo, Ti As largo

Imagen1.ScaleMode = 3

Imagen1.DrawWidth = 1

Imagen1.AutoRedraw = True

Px = Imagen1.ScaleWidth

Py = Imagen1.ScaleHeight