Informationen zu Animationssteuerelementen
Ein Animationssteuerelement ist ein Fenster, in dem ein Audio-Video Avi-Clip (Interleaved) angezeigt wird. Ein AVI-Clip ist eine Reihe von Bitmapframes wie ein Film. Animationssteuerelemente können nur AVI-Clips anzeigen, die keine Audioinhalte enthalten.
Eine häufige Verwendung für ein Animationssteuerelement besteht darin, die Systemaktivität während eines langen Vorgangs anzugeben. Dies ist möglich, da der Vorgangsthread weiterhin ausgeführt wird, während der AVI-Clip angezeigt wird. Beispielsweise zeigt das Dialogfeld Suchen von Windows Explorer eine sich bewegende Lupe an, während das System nach einer Datei sucht.
Hinweis
Wenn Sie ComCtl32.dll Version 6 verwenden, wird der Thread nicht unterstützt. Stellen Sie sicher, dass Ihre Anwendung die Benutzeroberfläche nicht blockiert, andernfalls wird die Animation nicht ausgeführt.
Ein Animationssteuerelement kann einen AVI-Clip anzeigen, der entweder aus einer nicht komprimierten AVI-Datei oder aus einer AVI-Datei stammt, die mithilfe der BI_RLE8-Codierung (Run Length) komprimiert wurde. Sie können den AVI-Clip Ihrer Anwendung als AVI-Ressource hinzufügen, oder der Clip kann Ihre Anwendung als separate AVI-Datei begleiten.
Hinweis
Die AVI-Datei oder -Ressource darf keinen Soundkanal aufweisen. Die Funktionen des Animationssteuerelements sind sehr eingeschränkt und können sich ändern. Wenn Sie ein Steuerelement benötigen, um Multimediawiedergabe- und Aufzeichnungsfunktionen für Ihre Anwendung bereitzustellen, können Sie das MCIWnd-Steuerelement verwenden. Weitere Informationen finden Sie unter MCIWnd-Fensterklasse.
In diesem Abschnitt werden die folgenden Themen erläutert.
- Erstellen eines Animationssteuerelements
- Informationen zu Animationssteuerungsmeldungen
- Standardnachrichtenverarbeitung
Erstellen eines Animationssteuerelements
Ein Animationssteuerelement gehört zur ANIMATE_CLASS Fensterklasse. Sie erstellen ein Animationssteuerelement mithilfe der CreateWindow - oder CreateWindowEx-Funktion oder des makros Animate_Create . Das Makro positioniert das Animationssteuerelement in der oberen linken Ecke des übergeordneten Fensters und legt die Breite und Höhe des Steuerelements basierend auf den Abmessungen eines Frames im AVI-Clip fest, wenn die ACS_CENTER Formatvorlage nicht angegeben ist. Wenn ACS_CENTER angegeben ist, legt Animate_Create die Breite und Höhe des Steuerelements auf Null fest. Sie können die SetWindowPos-Funktion verwenden, um die Position und Größe des Steuerelements festzulegen.
Wenn Sie ein Animationssteuerelement in einem Dialogfeld oder aus einer Dialogfeldressource erstellen, wird das Steuerelement automatisch zerstört, wenn der Benutzer das Dialogfeld schließt. Wenn Sie ein Animationssteuerelement in einem Fenster erstellen, müssen Sie das Steuerelement explizit zerstören.
Informationen zu Animationssteuerungsmeldungen
Eine Anwendung sendet Nachrichten an ein Animationssteuerelement, um den entsprechenden AVI-Clip zu öffnen, abzuspielen, zu beenden und zu schließen. Jede Nachricht verfügt über ein oder mehrere Makros, die Sie verwenden können, anstatt die Nachricht explizit zu senden.
Nach dem Erstellen eines Animationssteuerelements sendet eine Anwendung die ACM_OPEN Nachricht, um einen AVI-Clip zu öffnen und in den Arbeitsspeicher zu laden. Die Meldung gibt entweder den Pfad einer AVI-Datei oder den Namen einer AVI-Ressource an. Das System lädt die AVI-Ressource aus dem Modul, das das Animationssteuerelement erstellt hat.
Wenn das Animationssteuerelement den ACS_AUTOPLAY Stil aufweist, beginnt das Steuerelement mit der Wiedergabe des AVI-Clips unmittelbar nach dem Öffnen der AVI-Datei oder AVI-Ressource. Andernfalls kann eine Anwendung die ACM_PLAY-Nachricht verwenden, um den AVI-Clip zu starten. Eine Anwendung kann den Clip jederzeit beenden, indem die ACM_STOP Nachricht gesendet wird. Der zuletzt wiedergegebene Frame wird angezeigt, wenn das Steuerelement die Wiedergabe des AVI-Clips beendet oder ACM_STOP gesendet wird.
Ein Animationssteuerelement kann zwei Benachrichtigungscodes an das übergeordnete Fenster senden: ACN_START und ACN_STOP. Die meisten Anwendungen verarbeiten keine Benachrichtigungen.
Um die AVI-Datei oder AVI-Ressource zu schließen und aus dem Arbeitsspeicher zu entfernen, kann eine Anwendung das Animate_Close-Makro verwenden, das ACM_OPEN sendet, wobei der Datei- oder Ressourcenname auf NULL festgelegt ist.
Standardnachrichtenverarbeitung
In diesem Abschnitt werden die Fenstermeldungen beschrieben, die von der Fensterprozedur für die ANIMATE_CLASS-Fensterklasse verarbeitet werden.
Nachricht | Durchgeführte Verarbeitung |
---|---|
WM_CLOSE | Gibt die AVI-Datei oder AVI-Ressource frei, die dem Animationssteuerelement zugeordnet ist. |
WM_DESTROY | Gibt die AVI-Datei oder AVI-Ressource frei, gibt eine interne Datenstruktur frei und ruft dann die DefWindowProc-Funktion auf. |
WM_ERASEBKGND | Löscht den Fensterhintergrund mit der aktuellen Hintergrundfarbe für statische Steuerelemente. |
WM_NCCREATE | Ordnet eine interne Datenstruktur zu und initialisiert sie und ruft dann DefWindowProc auf. |
WM_NCHITTEST | Gibt den HTTRANSPARENT-Treffertestwert zurück. |
WM_PAINT | Zeichnet einen AVI-Frame im Animationssteuerelement. |
WM_SIZE | Überprüft, ob das Steuerelement über das ACS_CENTER-Format verfügt. Wenn dies nicht der Fall ist, ruft es DefWindowProc auf. Andernfalls wird die Animation im Steuerelement zentriert, das Steuerelement ungültig und dann DefWindowProc aufgerufen. |