Delen via


Over animatiebedieningselementen

Een animatiebesturing is een venster waarin een Audio-Video Interleaved (AVI) clip wordt weergegeven. Een AVI-clip is een reeks bitmapframes zoals een film. Animatiebesturingselementen kunnen alleen AVI-clips weergeven die geen audio bevatten.

Een veelgebruikt gebruik voor een animatie-besturingselement is het aangeven van systeemactiviteit tijdens een lange bewerking. Dit is mogelijk omdat de bewerkingsthread blijft uitvoeren terwijl de AVI-clip wordt weergegeven. In het dialoogvenster Zoeken van Windows Verkenner wordt bijvoorbeeld een zwevend vergrootglas weergegeven terwijl het systeem zoekt naar een bestand.

Notitie

Als u ComCtl32.dll versie 6 gebruikt, wordt de thread niet ondersteund. zorg ervoor dat de gebruikersinterface niet wordt geblokkeerd door uw toepassing, anders wordt de animatie niet weergegeven.

 

Een animatiebesturingselement kan een AVI-clip weergeven die afkomstig is van een niet-gecomprimeerd AVI-bestand of van een AVI-bestand dat is gecomprimeerd met behulp van run-length -codering (BI_RLE8). U kunt de AVI-clip toevoegen aan uw toepassing als een AVI-resource, of de clip kan uw toepassing als een afzonderlijk AVI-bestand begeleiden.

Notitie

Het AVI-bestand of de resource mag geen geluidskanaal hebben. De mogelijkheden van het animatie-besturingselement zijn zeer beperkt en kunnen worden gewijzigd. Als u een besturingselement nodig hebt voor het afspelen en opnemen van multimedia voor uw toepassing, kunt u het besturingselement MCIWnd gebruiken. Zie MCIWnd Window Classvoor meer informatie.

 

In deze sectie worden de volgende onderwerpen besproken.

Animatiebeheer maken

Een animatiebesturingselement behoort tot de ANIMATE_CLASS-vensterklasse. U maakt een animatie-besturingselement met behulp van de functie CreateWindow of CreateWindowEx of de Animate_Create-macro. De macro plaatst het animatiebesturingselement in de linkerbovenhoek van het bovenliggende venster en als de stijl ACS_CENTER niet is opgegeven, stelt u de breedte en hoogte van het besturingselement in op basis van de afmetingen van een frame in de AVI-clip. Als ACS_CENTER is opgegeven, stelt Animate_Create de breedte en hoogte van het besturingselement in op nul. U kunt de functie SetWindowPos gebruiken om de positie en grootte van het besturingselement in te stellen.

Als u een animatie-besturingselement in een dialoogvenster of vanuit een dialoogvensterresource maakt, wordt het besturingselement automatisch vernietigd wanneer de gebruiker het dialoogvenster sluit. Als u een animatie-besturingselement in een venster maakt, moet u het besturingselement expliciet vernietigen.

Over berichten voor animatiecontrole

Een toepassing verzendt berichten naar een animatiebesturingselement om de bijbehorende AVI-clip te openen, afspelen, stoppen en sluiten. Elk bericht heeft een of meer macro's die u kunt gebruiken in plaats van het bericht expliciet te verzenden.

Nadat u een animatie-besturingselement hebt gemaakt, verzendt een toepassing het ACM_OPEN bericht om een AVI-clip te openen en in het geheugen te laden. Het bericht geeft het pad van een AVI-bestand of de naam van een AVI-resource op. Het systeem laadt de AVI-resource uit de module die het animatie-besturingselement heeft gemaakt.

Als het animatie-besturingselement de ACS_AUTOPLAY stijl heeft, begint het besturingselement met het afspelen van de AVI-clip direct nadat het AVI-bestand of de AVI-resource is geopend. Anders kan een toepassing het ACM_PLAY bericht gebruiken om de AVI-clip te starten. Een toepassing kan de clip op elk gewenst moment stoppen door het ACM_STOP bericht te verzenden. Het laatste afgespeelde frame blijft weergegeven wanneer het besturingselement klaar is met het afspelen van de AVI-clip of wanneer ACM_STOP wordt verzonden.

Een animatiecontrole kan twee meldingscodes verzenden naar het oudervenster: ACN_START en ACN_STOP. De meeste toepassingen verwerken geen van beide meldingen.

Als u het AVI-bestand of de AVI-resource wilt sluiten en uit het geheugen wilt verwijderen, kan een toepassing de Animate_Close macro gebruiken, die ACM_OPEN verzendt met de bestandsnaam of resourcenaam die is ingesteld op NULL-.

Standaardberichtverwerking

In deze sectie worden de vensterberichten beschreven die worden verwerkt door de vensterprocedure voor de ANIMATE_CLASS-vensterklasse.

Bericht Verwerking uitgevoerd
WM_CLOSE Hiermee wordt het AVI-bestand of de AVI-resource vrijgemaakt die is gekoppeld aan het animatie-besturingselement.
WM_DESTROY Hiermee wordt het AVI-bestand of de AVI-resource vrijgemaakt, een interne gegevensstructuur vrijgemaakt en vervolgens de DefWindowProc--functie aangeroepen.
WM_ERASEBKGND Hiermee wordt de achtergrond van het venster gewist met behulp van de huidige achtergrondkleur voor statische besturingselementen.
WM_NCCREATE Wijst een interne gegevensstructuur toe en initialiseert deze en roept vervolgens DefWindowProc-aan.
WM_NCHITTEST Retourneert de testwaarde HTTRANSPARENT hit.
WM_PAINT Hiermee tekent u een AVI-frame in het animatie-besturingselement.
WM_SIZE Controleert of het besturingselement de stijl ACS_CENTER heeft. Als het besturingselement dat niet doet, wordt DefWindowProcaangeroepen. Anders wordt de animatie in het besturingselement gecentreerd, wordt het besturingselement ongeldig gemaakt, en wordt vervolgens DefWindowProcaangeroepen.