Dela via


Om animeringskontroller

En animeringskontroll är ett fönster som visar ett Audio-Video interfolierat AVI-klipp. Ett AVI-klipp är en serie bitmappsramar som en film. Animeringskontroller kan bara visa AVI-klipp som inte innehåller ljud.

En vanlig användning för en animeringskontroll är att indikera systemaktivitet under en lång åtgärd. Detta är möjligt eftersom åtgärdstråden fortsätter att köras medan AVI-klippet visas. Dialogrutan Sök i Utforskaren visar till exempel ett rörligt förstoringsglas när systemet söker efter en fil.

Note

Om du använder ComCtl32.dll version 6 stöds inte tråden. kontrollera att programmet inte blockerar användargränssnittet, annars sker inte animeringen.

 

En animeringskontroll kan visa ett AVI-klipp som kommer från antingen en okomprimerad AVI-fil eller från en AVI-fil som var komprimerad med run-length (BI_RLE8) kodning. Du kan lägga till AVI-klippet i ditt program som en AVI-resurs, eller så kan klippet följa med ditt program som en separat AVI-fil.

Not

AVI-filen eller resursen får inte ha någon ljudkanal. Funktionerna i animeringskontrollen är mycket begränsade och kan komma att ändras. Om du behöver en kontroll för att tillhandahålla funktioner för multimediauppspelning och inspelning för ditt program kan du använda MCIWnd-kontrollen. Mer information finns i MCIWnd Window Class.

 

I det här avsnittet beskrivs följande avsnitt.

Skapande av animeringskontroll

En animeringskontroll tillhör ANIMATE_CLASS-fönsterklassen. Du skapar en animeringskontroll med hjälp av funktionen CreateWindow eller CreateWindowEx eller Animate_Create makro. Makrot placerar animeringskontrollen i det övre vänstra hörnet i det överordnade fönstret och anger kontrollens bredd och höjd baserat på måtten för en ram i AVI-klippet om ACS_CENTER formatmallen inte anges. Om ACS_CENTER anges anger Animate_Create kontrollens bredd och höjd till noll. Du kan använda funktionen SetWindowPos för att ange kontrollens position och storlek.

Om du skapar en animeringskontroll i en dialogruta eller från en dialogruteresurs förstörs kontrollen automatiskt när användaren stänger dialogrutan. Om du skapar en animeringskontroll i ett fönster måste du uttryckligen förstöra kontrollen.

Om animeringskontrollmeddelanden

Ett program skickar meddelanden till en animeringskontroll för att öppna, spela upp, stoppa och stänga motsvarande AVI-klipp. Varje meddelande har ett eller flera makron som du kan använda i stället för att uttryckligen skicka meddelandet.

När du har skapat en animeringskontroll skickar ett program ACM_OPEN meddelande för att öppna ett AVI-klipp och läsa in det i minnet. Meddelandet anger antingen sökvägen till en AVI-fil eller namnet på en AVI-resurs. Systemet läser in AVI-resursen från modulen som skapade animeringskontrollen.

Om animeringskontrollen har ACS_AUTOPLAY format börjar kontrollen spela upp AVI-klippet direkt efter att AVI-filen eller AVI-resursen har öppnats. Annars kan ett program använda meddelandet ACM_PLAY för att starta AVI-klippet. Ett program kan när som helst stoppa klippet genom att skicka meddelandet ACM_STOP. Den sista bildrutan som spelades upp visas kvar när AVI-klippet har spelats klart av kontrollen eller när ACM_STOP skickas.

En animeringskontroll kan skicka två meddelandekoder till det överordnade fönstret: ACN_START och ACN_STOP. De flesta program hanterar inte någon av aviseringarna.

Om du vill stänga AVI-filen eller AVI-resursen och ta bort den från minnet kan ett program använda Animate_Close makro, som skickar ACM_OPEN med filnamnet eller resursnamnet inställt på NULL-.

Standardbearbetning av meddelanden

I det här avsnittet beskrivs de fönstermeddelanden som hanteras av fönsterproceduren för ANIMATE_CLASS-fönsterklassen.

Meddelande Bearbetningen har utförts
WM_CLOSE Frigör AVI-filen eller AVI-resursen som är associerad med animeringskontrollen.
WM_DESTROY Frigör AVI-filen eller AVI-resursen, frigör en intern datastruktur och anropar sedan funktionen DefWindowProc.
WM_ERASEBKGND Raderar fönsterbakgrunden med den aktuella bakgrundsfärgen för statiska kontroller.
WM_NCCREATE Allokerar och initierar en intern datastruktur och anropar sedan DefWindowProc.
WM_NCHITTEST Returnerar HTTRANSPARENT-träfftestvärdet.
WM_PAINT Ritar en AVI-bildruta i animeringskontrollen.
WM_SIZE Kontrollerar om kontrollen har ACS_CENTER stil. Om kontrollen inte gör det, så anropar den DefWindowProc. Annars centreras animeringen i kontrollen, kontrollen ogiltigförklaras och anropas sedan DefWindowProc.