Sección de códigos , trucos y ejemplos para visual basic


2 - Simple animación utilizando el Api BitBlt

<Volver> - Anterior - Siguiente





Esta simple animación utiliza la función API BitBlt. Esta API permite copiar imágenes desde un dispositivo de contexto a otro disposotivo ( Propiedad HDC ).

El HDC o dispositivo de contexto en windows , se podría comparar con el Hwnd o identificador de ventana, pero el HDC es un handle gráfico.

En visual Basic la propiedad HDC, lo poseen solo algunos controles y objetos, como por ejemplo los formularios y los picturebox.

En este ejemplo la animación de muestra es similar a la de un gif animado.

Para el mismo se necesita una secuencia de imágenes separadas que formen una animación, por ejemplo 5 archivos gráficos.



Colocar en el formulario los siguientes controles:

  1. Un arreglo de Picture1 de la cantidad de imágenes, por ejemplo 5, (Picture1(0), Picture1(1), etc...). Cargar las imágenes en cada picturebox en el orden correcto. La propiedad Autoredraw y Autosize en true solo del Picture 1
  2. Un Picture2 que será el dispositivo de destino, es decir donde se visualizará la secuencia de animación
  3. Un control Timer que se encargará de dibujar cada archivo para que se genere la secuencia.
  4. Un control Text1 y colocarle la propiedad Interval del timer para manipular la velocidad de la animación.
  5. Un Command1 para llamar al timer

 

 

Código fuente en el formulario :

 

Los parámetros de BitBlt son:

  1. 1 - El HDC del dispositivo destino ( Picture2.HDC )
  2. Parámetro 2 y 3 : La coordenada X e Y donde se copiará en el picture2
  3. Parámetro 4 y 5 : El Ancho y Alto de la imágen que queremos copiar, es decir la porción del gráfico, en este caso completa
  4. Parámetro 6 : El HDC del dispositivo fuente u Origen , es decir la propiedad HDC del Picture1
  5. Parámetro 7 y 8 : El tamaño que se va a copiar, si está en 0 se copia toda la imagen, si no se recorta un pedazo específico
  6. 9 - Constante para copiar la imagen exacta.

 

Cada vez que entre en el Sub del timer se copiará la imagen del picturebox correspondiente determinado por el índice.

La línea de código :

If índice = 4 Then indice = 0: Exit Sub

 

.. lo que hace es que salga del bucle cuando llegamos a la última imagen y luego ponemos la variable indice a 0 para comenzar nuevamente.


Ejemplos relacionados a BitBlt

Código fuente de Planet source code que permite crear automáticamente una máscara de una imagen para usar con la función BitBlt.

Desde el ejemplo podemos cargar el gráfico, definir el color de transparencia , ver una vista previa y luego guardar la máscara como archivo BMP.

 

Ver proyecto de ejemplo

 


Recursos vb 6.0 - Enlaces relacionados



Buscar en Recursos vb