À propos des contrôles d’animation

Un contrôle d’animation est une fenêtre qui affiche un clip Audio-Video entrelacé (AVI). Un clip AVI est une série d’images bitmap comme un film. Les contrôles d’animation peuvent uniquement afficher des clips AVI qui ne contiennent pas d’audio.

Une utilisation courante d’un contrôle d’animation est d’indiquer l’activité du système pendant une opération de longue durée. Cela est possible, car le thread d’opération continue de s’exécuter pendant l’affichage du clip AVI. Par exemple, la boîte de dialogue Rechercher de Windows Explorer affiche une loupe mobile lorsque le système recherche un fichier.

Notes

Si vous utilisez ComCtl32.dll version 6, le thread n’est pas pris en charge ; assurez-vous que votre application ne bloque pas l’interface utilisateur, sinon l’animation ne se produira pas.

 

Un contrôle d’animation peut afficher un clip AVI provenant d’un fichier AVI non compressé ou d’un fichier AVI compressé à l’aide de l’encodage de longueur d’exécution (BI_RLE8). Vous pouvez ajouter le clip AVI à votre application en tant que ressource AVI, ou le clip peut accompagner votre application sous la forme d’un fichier AVI distinct.

Notes

Le fichier AVI, ou la ressource, ne doit pas avoir de canal audio. Les fonctionnalités du contrôle d’animation sont très limitées et sont susceptibles d’être modifiées. Si vous avez besoin d’un contrôle pour fournir des fonctionnalités de lecture et d’enregistrement multimédia pour votre application, vous pouvez utiliser le contrôle MCIWnd. Pour plus d’informations, consultez Classe de fenêtre MCIWnd.

 

Cette section traite des rubriques suivantes.

Création d’un contrôle d’animation

Un contrôle d’animation appartient à la classe de fenêtre ANIMATE_CLASS . Vous créez un contrôle d’animation à l’aide de la fonction CreateWindow ou CreateWindowEx ou de la macro Animate_Create . La macro positionne le contrôle d’animation dans le coin supérieur gauche de la fenêtre parente et, si le style ACS_CENTER n’est pas spécifié, définit la largeur et la hauteur du contrôle en fonction des dimensions d’un cadre dans le clip AVI. Si ACS_CENTER est spécifié, Animate_Create définit la largeur et la hauteur du contrôle sur zéro. Vous pouvez utiliser la fonction SetWindowPos pour définir la position et la taille du contrôle.

Si vous créez un contrôle d’animation dans une boîte de dialogue ou à partir d’une ressource de boîte de dialogue, le contrôle est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue. Si vous créez un contrôle d’animation dans une fenêtre, vous devez le détruire explicitement.

À propos des messages de contrôle d’animation

Une application envoie des messages à un contrôle d’animation pour ouvrir, lire, arrêter et fermer le clip AVI correspondant. Chaque message a une ou plusieurs macros que vous pouvez utiliser au lieu d’envoyer le message explicitement.

Après avoir créé un contrôle d’animation, une application envoie le message ACM_OPEN pour ouvrir un clip AVI et le charger en mémoire. Le message spécifie le chemin d’accès d’un fichier AVI ou le nom d’une ressource AVI. Le système charge la ressource AVI à partir du module qui a créé le contrôle d’animation.

Si le contrôle d’animation a le style ACS_AUTOPLAY , il commence à lire le clip AVI immédiatement après l’ouverture du fichier AVI ou de la ressource AVI. Sinon, une application peut utiliser le message ACM_PLAY pour démarrer le clip AVI. Une application peut arrêter le clip à tout moment en envoyant le message ACM_STOP . La dernière image lue reste affichée lorsque le contrôle a terminé de lire le clip AVI ou lorsque ACM_STOP est envoyé.

Un contrôle d’animation peut envoyer deux codes de notification à sa fenêtre parente : ACN_START et ACN_STOP. La plupart des applications ne gèrent aucune notification.

Pour fermer le fichier AVI ou la ressource AVI et le supprimer de la mémoire, une application peut utiliser la macro Animate_Close , qui envoie ACM_OPEN avec le nom de fichier ou le nom de la ressource défini sur NULL.

Traitement des messages par défaut

Cette section décrit les messages de fenêtre gérés par la procédure de fenêtre pour la classe de fenêtre ANIMATE_CLASS .

Message Traitement effectué
WM_CLOSE Libère le fichier AVI ou la ressource AVI associée au contrôle d’animation.
WM_DESTROY Libère le fichier AVI ou la ressource AVI, libère une structure de données interne, puis appelle la fonction DefWindowProc .
WM_ERASEBKGND Efface l’arrière-plan de la fenêtre à l’aide de la couleur d’arrière-plan actuelle pour les contrôles statiques.
WM_NCCREATE Alloue et initialise une structure de données interne, puis appelle DefWindowProc.
WM_NCHITTEST Retourne la valeur de test de positionnement HTTRANSPARENT.
WM_PAINT Dessine une image AVI dans le contrôle d’animation.
WM_SIZE Vérifie si le contrôle a le style ACS_CENTER . Si ce n’est pas le cas, il appelle DefWindowProc. Sinon, il centre l’animation dans le contrôle, invalide le contrôle, puis appelle DefWindowProc.