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
- om animeringskontrollmeddelanden
- standardinställningar för meddelandehantering
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. |