Acerca de los controles de animación
Un control de animación es una ventana que muestra un clip Audio-Video intercalado (AVI). Un clip AVI es una serie de fotogramas de mapa de bits como una película. Los controles de animación solo pueden mostrar clips AVI que no contengan audio.
Un uso común de un control de animación es indicar la actividad del sistema durante una operación larga. Esto es posible porque el subproceso de operación continúa ejecutándose mientras se muestra el clip avi. Por ejemplo, el cuadro de diálogo Buscar del Explorador de Windows muestra una lupa móvil a medida que el sistema busca un archivo.
Nota
Si usa ComCtl32.dll versión 6, no se admite el subproceso; Asegúrese de que la aplicación no bloquea la interfaz de usuario o, de lo contrario, no se producirá la animación.
Un control de animación puede mostrar un clip AVI que se origina en un archivo AVI sin comprimir o desde un archivo AVI comprimido mediante codificación de longitud de ejecución (BI_RLE8). Puede agregar el clip avi a la aplicación como un recurso AVI o el clip puede acompañar a la aplicación como un archivo AVI independiente.
Nota
El archivo AVI, o recurso, no debe tener un canal de sonido. Las funcionalidades del control de animación son muy limitadas y están sujetas a cambios. Si necesita un control para proporcionar funcionalidades de reproducción y grabación multimedia para la aplicación, puede usar el control MCIWnd. Para obtener más información, vea Clase de ventana MCIWnd.
En esta sección se describen los temas siguientes.
- Creación de controles de animación
- Acerca de los mensajes de control de animación
- Procesamiento de mensajes predeterminado
Creación de controles de animación
Un control de animación pertenece a la clase de ventana ANIMATE_CLASS . Puede crear un control de animación mediante la función CreateWindow o CreateWindowEx o la macro Animate_Create . La macro coloca el control de animación en la esquina superior izquierda de la ventana primaria y, si no se especifica el estilo ACS_CENTER , establece el ancho y el alto del control en función de las dimensiones de un marco del clip AVI. Si se especifica ACS_CENTER , Animate_Create establece el ancho y alto del control en cero. Puede usar la función SetWindowPos para establecer la posición y el tamaño del control.
Si crea un control de animación dentro de un cuadro de diálogo o desde un recurso de cuadro de diálogo, el control se destruye automáticamente cuando el usuario cierra el cuadro de diálogo. Si creas un control de animación dentro de una ventana, debes destruir explícitamente el control.
Acerca de los mensajes de control de animación
Una aplicación envía mensajes a un control de animación para abrir, reproducir, detener y cerrar el clip avi correspondiente. Cada mensaje tiene una o varias macros que puede usar en lugar de enviar el mensaje explícitamente.
Después de crear un control de animación, una aplicación envía el mensaje ACM_OPEN para abrir un clip AVI y cargarlo en la memoria. El mensaje especifica la ruta de acceso de un archivo AVI o el nombre de un recurso AVI. El sistema carga el recurso AVI desde el módulo que creó el control de animación.
Si el control de animación tiene el estilo ACS_AUTOPLAY , el control comienza a reproducir el clip avi inmediatamente después de abrir el archivo AVI o el recurso AVI. De lo contrario, una aplicación puede usar el mensaje ACM_PLAY para iniciar el clip avi. Una aplicación puede detener el clip en cualquier momento enviando el mensaje ACM_STOP . El último fotograma reproducido permanece mostrado cuando el control termina de reproducir el clip AVI o cuando se envía ACM_STOP .
Un control de animación puede enviar dos códigos de notificación a su ventana primaria: ACN_START y ACN_STOP. La mayoría de las aplicaciones no controlan ninguna notificación.
Para cerrar el archivo AVI o el recurso AVI y quitarlo de la memoria, una aplicación puede usar la macro Animate_Close , que envía ACM_OPEN con el nombre de archivo o nombre de recurso establecido en NULL.
Procesamiento de mensajes predeterminado
En esta sección se describen los mensajes de ventana que controla el procedimiento de ventana para la clase de ventana ANIMATE_CLASS .
Message | Procesamiento realizado |
---|---|
WM_CLOSE | Libera el archivo AVI o el recurso AVI asociado al control de animación. |
WM_DESTROY | Libera el archivo AVI o el recurso AVI, libera una estructura de datos interna y, a continuación, llama a la función DefWindowProc . |
WM_ERASEBKGND | Borra el fondo de la ventana con el color de fondo actual para los controles estáticos. |
WM_NCCREATE | Asigna e inicializa una estructura de datos interna y, a continuación, llama a DefWindowProc. |
WM_NCHITTEST | Devuelve el valor de prueba de posicionamiento HTTRANSPARENT. |
WM_PAINT | Dibuja un fotograma AVI en el control de animación. |
WM_SIZE | Comprueba si el control tiene el estilo ACS_CENTER . Si el control no lo hace, llama a DefWindowProc. De lo contrario, centra la animación en el control, invalida el control y, a continuación, llama a DefWindowProc. |