CAnimateCtrl, classe
Fournit les fonctionnalités du contrôle commun d'animation Windows.
Syntaxe
class CAnimateCtrl : public CWnd
Membres
Constructeurs publics
Nom | Description |
---|---|
CAnimateCtrl ::CAnimateCtrl | Construit un objet CAnimateCtrl . |
Méthodes publiques
Nom | Description |
---|---|
CAnimateCtrl ::Close | Ferme le clip AVI. |
CAnimateCtrl ::Create | Crée un contrôle d’animation et l’attache à un CAnimateCtrl objet. |
CAnimateCtrl ::CreateEx | Crée un contrôle d’animation avec les styles étendus Windows spécifiés et l’attache à un CAnimateCtrl objet. |
CAnimateCtrl ::IsPlaying | Indique si un clip audio-vidéo entrelacé (AVI) est en cours de lecture. |
CAnimateCtrl ::Open | Ouvre un clip AVI à partir d’un fichier ou d’une ressource et affiche le premier frame. |
CAnimateCtrl ::P lay | Lit le clip AVI sans son. |
CAnimateCtrl ::Seek | Affiche un cadre unique sélectionné du clip AVI. |
CAnimateCtrl ::Stop | Arrête de lire le clip AVI. |
Notes
Ce contrôle (et par conséquent la CAnimateCtrl
classe) est disponible uniquement pour les programmes exécutés sous Windows 95, Windows 98 et Windows NT version 3.51 et ultérieure.
Un contrôle d’animation est une fenêtre rectangulaire qui affiche un clip au format AVI (Audio Video Interleaved), le format vidéo/audio Windows standard. Un clip AVI est une série d’images bitmap, comme un film.
Les contrôles d’animation peuvent lire uniquement des clips AVI simples. Plus précisément, les clips à lire par un contrôle d’animation doivent répondre aux exigences suivantes :
Il doit y avoir exactement un flux vidéo et il doit avoir au moins une image.
Il peut y avoir au maximum deux flux dans le fichier (généralement l’autre flux, le cas échéant, est un flux audio, bien que le contrôle d’animation ignore les informations audio).
Le clip doit être décompressé ou compressé avec la compression RLE8.
Aucune modification de palette n’est autorisée dans le flux vidéo.
Vous pouvez ajouter le clip AVI à votre application en tant que ressource AVI, ou il peut accompagner votre application en tant que fichier AVI distinct.
Étant donné que votre thread continue à s’exécuter pendant l’affichage du clip AVI, l’une des utilisations courantes d’un contrôle d’animation consiste à indiquer l’activité système pendant une longue opération. Par exemple, la boîte de dialogue Rechercher de Explorateur de fichiers affiche une loupe mobile lorsque le système recherche un fichier.
Si vous créez un CAnimateCtrl
objet dans une boîte de dialogue ou à partir d’une ressource de dialogue à l’aide de l’éditeur de boîte de dialogue, il est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue.
Si vous créez un CAnimateCtrl
objet dans une fenêtre, vous devrez peut-être le détruire. Si vous créez l’objet CAnimateCtrl
sur la pile, il est détruit automatiquement. Si vous créez l’objet CAnimateCtrl
sur le tas à l’aide de la new
fonction, vous devez appeler delete
l’objet pour le détruire. Si vous dérivez une nouvelle classe et CAnimateCtrl
allouez une mémoire dans cette classe, remplacez le CAnimateCtrl
destructeur pour supprimer les allocations.
Pour plus d’informations sur l’utilisation CAnimateCtrl
, consultez Contrôles et utilisation de CAnimateCtrl.
Hiérarchie d'héritage
CAnimateCtrl
Spécifications
En-tête : afxcmn.h
CAnimateCtrl ::CAnimateCtrl
Construit un objet CAnimateCtrl
.
CAnimateCtrl();
Notes
Vous devez appeler la fonction Créer un membre avant de pouvoir effectuer d’autres opérations sur l’objet que vous créez.
Exemple
// This example creates a secondary thread that implements
// the methods of CAnimateCtrl. The procedure of the thread
// is MyClipThreadProc and the thread was created with the
// code AfxBeginThread( MyClipThreadProc, (LPVOID) pParentWnd).
// The example code creates and initializes an animation control,
// then proceeds to pump messages from the queue until one the
// private messages WM_STOPCLIP, WM_PLAYCLIP, WM_SHOWFIRSTFRAME or
// WM_SHOWLASTFRAME is received. The appropriate action is done for
// these messages. The thread ends when the WM_STOPCLIP is received.
// NOTE: the thread parameter, pParam, is a pointer to a CWnd object
// that will be the parent of the animation control.
#define WM_STOPCLIP WM_USER + 1
#define WM_PLAYCLIP WM_USER + 2
#define WM_SHOWFIRSTFRAME WM_USER + 3
#define WM_SHOWLASTFRAME WM_USER + 4
UINT MyClipThreadProc(LPVOID pParam)
{
// NOTE: pParentWnd is the parent window of the animation control.
CWnd *pParentWnd = (CWnd *)pParam;
CAnimateCtrl cAnimCtrl;
// Create the animation control.
if (!cAnimCtrl.Create(WS_CHILD | WS_VISIBLE | ACS_CENTER,
CRect(10, 10, 100, 100), pParentWnd, 1))
{
return false;
}
// Open the AVI file.
if (!cAnimCtrl.Open(_T("MyAvi.avi")))
{
return false;
}
// Pump message from the queue until the stop play message is received.
MSG msg;
while (GetMessage(&msg, NULL, 0, 0) && (msg.message != WM_STOPCLIP))
{
switch (msg.message)
{
// Start playing from the first frame to the last,
// continuously repeating.
case WM_PLAYCLIP:
if (!cAnimCtrl.Play(0, (UINT)-1, (UINT)-1))
return false;
break;
// Show the first frame.
case WM_SHOWFIRSTFRAME:
if (!cAnimCtrl.Seek(0))
return false;
cAnimCtrl.RedrawWindow();
break;
// Show the last frame.
case WM_SHOWLASTFRAME:
if (!cAnimCtrl.Seek((UINT)-1))
return false;
cAnimCtrl.RedrawWindow();
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
cAnimCtrl.Stop();
cAnimCtrl.Close();
return true;
}
CAnimateCtrl ::Close
Ferme le clip AVI qui a été ouvert précédemment dans le contrôle d’animation (le cas échéant) et le supprime de la mémoire.
BOOL Close();
Valeur de retour
Valeur différente de zéro en cas de réussite ; sinon, zéro.
Exemple
Consultez l’exemple de CAnimateCtrl ::CAnimateCtrl.
CAnimateCtrl ::Create
Crée un contrôle d’animation et l’attache à un CAnimateCtrl
objet.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Paramètres
dwStyle
Spécifie le style du contrôle d’animation. Appliquez n’importe quelle combinaison des styles windows décrits dans la section Remarques ci-dessous et les styles de contrôle d’animation décrits dans Les styles de contrôle d’animation dans le Kit de développement logiciel (SDK) Windows.
rect
Spécifie la position et la taille du contrôle d’animation. Il peut s’agir d’un objet CRect ou d’une structure RECT .
pParentWnd
Spécifie la fenêtre parente du contrôle d’animation, généralement un CDialog
. Elle ne doit pas être NULL.
nID
Spécifie l’ID du contrôle d’animation.
Valeur de retour
Valeur différente de zéro en cas de réussite ; sinon, zéro.
Notes
Vous construisez une CAnimateCtrl
étape en deux étapes. Tout d’abord, appelez le constructeur, puis appelez Create
, qui crée le contrôle d’animation et l’attache à l’objet CAnimateCtrl
.
Appliquez les styles de fenêtre suivants à un contrôle d’animation.
WS_CHILD Always
WS_VISIBLE Généralement
WS_DISABLED Rarement
Si vous souhaitez utiliser des styles windows étendus avec votre contrôle d’animation, appelez CreateEx au lieu de Create
.
En plus des styles de fenêtre répertoriés ci-dessus, vous pouvez appliquer un ou plusieurs styles de contrôle d’animation à un contrôle d’animation. Pour plus d’informations sur les styles de contrôle d’animation, consultez le Kit de développement logiciel (SDK) Windows.
Exemple
Consultez l’exemple de CAnimateCtrl ::CAnimateCtrl.
CAnimateCtrl ::CreateEx
Crée un contrôle (fenêtre enfant) et l’associe à l’objet CAnimateCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Paramètres
dwExStyle
Spécifie le style étendu du contrôle en cours de création. Pour obtenir la liste des styles Windows étendus, consultez le paramètre dwExStyle pour CreateWindowEx dans le Kit de développement logiciel (SDK) Windows.
dwStyle
Spécifie le style du contrôle d’animation. Appliquez n’importe quelle combinaison des styles de contrôle d’animation et de fenêtre décrits dans les styles de contrôle d’animation dans le Kit de développement logiciel (SDK) Windows.
rect
Référence à une structure RECT décrivant la taille et la position de la fenêtre à créer, dans les coordonnées clientes de pParentWnd.
pParentWnd
Pointeur vers la fenêtre qui est le parent du contrôle.
nID
ID de la fenêtre enfant du contrôle.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Utilisez CreateEx
plutôt que Créer pour appliquer des styles Windows étendus, spécifiés par le préface de style étendu Windows WS_EX_.
CAnimateCtrl ::IsPlaying
Indique si un clip audio-vidéo entrelacé (AVI) est en cours de lecture.
BOOL IsPlaying() const;
Valeur de retour
TRUE si un clip AVI est en cours de lecture ; sinon, FALSE.
Notes
Cette méthode envoie le message ACM_ISPLAYING , qui est décrit dans le Kit de développement logiciel (SDK) Windows.
CAnimateCtrl ::Open
Appelez cette fonction pour ouvrir un clip AVI et afficher son premier cadre.
BOOL Open(LPCTSTR lpszFileName);
BOOL Open(UINT nID);
Paramètres
lpszFileName
Objet CString
ou pointeur vers une chaîne terminée par null qui contient le nom du fichier AVI ou le nom d’une ressource AVI. Si ce paramètre est NULL, le système ferme le clip AVI précédemment ouvert pour le contrôle d’animation, le cas échéant.
nID
Identificateur de ressource AVI. Si ce paramètre est NULL, le système ferme le clip AVI précédemment ouvert pour le contrôle d’animation, le cas échéant.
Valeur de retour
Valeur différente de zéro en cas de réussite ; sinon, zéro.
Notes
La ressource AVI est chargée à partir du module qui a créé le contrôle d’animation.
Open
ne prend pas en charge le son dans un clip AVI ; vous ne pouvez ouvrir que des clips AVI silencieux.
Si le contrôle d’animation a le ACS_AUTOPLAY
style, le contrôle d’animation démarre automatiquement la lecture du clip immédiatement après son ouverture. Il continuera à lire le clip en arrière-plan pendant l’exécution de votre thread. Lorsque le clip est terminé, il est automatiquement répété.
Si le contrôle d’animation a le ACS_CENTER
style, le clip AVI est centré dans le contrôle et la taille du contrôle ne change pas. Si le contrôle d’animation n’a pas le ACS_CENTER
style, le contrôle est redimensionné lorsque le clip AVI est ouvert à la taille des images dans le clip AVI. La position du coin supérieur gauche du contrôle ne change pas, seule la taille du contrôle.
Si le contrôle d’animation a le ACS_TRANSPARENT
style, le premier cadre est dessiné à l’aide d’un arrière-plan transparent plutôt que de la couleur d’arrière-plan spécifiée dans le clip d’animation.
Exemple
Consultez l’exemple de CAnimateCtrl ::CAnimateCtrl.
CAnimateCtrl ::P lay
Appelez cette fonction pour lire un clip AVI dans un contrôle d’animation.
BOOL Play(
UINT nFrom,
UINT nTo,
UINT nRep);
Paramètres
nFrom
Index de base zéro de l’image où la lecture commence. La valeur doit être inférieure à 65 536. La valeur 0 signifie commencer par le premier cadre dans le clip AVI.
Nto
Index de base zéro du frame où la lecture se termine. La valeur doit être inférieure à 65 536. Valeur de - 1 signifie se terminer par le dernier cadre dans le clip AVI.
nRep
Nombre de fois pour relire le clip AVI. La valeur - 1 signifie relire le fichier indéfiniment.
Valeur de retour
Valeur différente de zéro en cas de réussite ; sinon, zéro.
Notes
Le contrôle d’animation va lire le clip en arrière-plan pendant l’exécution de votre thread. Si le contrôle d’animation a ACS_TRANSPARENT
un style, le clip AVI est lu à l’aide d’un arrière-plan transparent plutôt que de la couleur d’arrière-plan spécifiée dans le clip d’animation.
Exemple
Consultez l’exemple de CAnimateCtrl ::CAnimateCtrl.
CAnimateCtrl ::Seek
Appelez cette fonction pour afficher statiquement un seul cadre de votre clip AVI.
BOOL Seek(UINT nTo);
Paramètres
Nto
Index de base zéro du frame à afficher. La valeur doit être inférieure à 65 536. La valeur 0 signifie afficher le premier cadre dans le clip AVI. La valeur -1 signifie afficher le dernier cadre dans le clip AVI.
Valeur de retour
Valeur différente de zéro en cas de réussite ; sinon, zéro.
Notes
Si le contrôle d’animation a ACS_TRANSPARENT
un style, le clip AVI est dessiné à l’aide d’un arrière-plan transparent plutôt que de la couleur d’arrière-plan spécifiée dans le clip d’animation.
Exemple
Consultez l’exemple de CAnimateCtrl ::CAnimateCtrl.
CAnimateCtrl ::Stop
Appelez cette fonction pour arrêter de lire un clip AVI dans un contrôle d’animation.
BOOL Stop();
Valeur de retour
Valeur différente de zéro en cas de réussite ; sinon, zéro.
Exemple
Consultez l’exemple de CAnimateCtrl ::CAnimateCtrl.
Voir aussi
CWnd, classe
Graphique hiérarchique
CAnimateCtrl ::Create
ON_CONTROL