Tudnivalók az animációs vezérlőkről
Az animációvezérlő egy ablak, amely Audio-Video interleaved (AVI) klipet jelenít meg. Az AVI-klipek olyan bitképkeretek sorozatai, mint egy film. Az animációs vezérlők csak olyan AVI-klipeket jeleníthetnek meg, amelyek nem tartalmaznak hangot.
Az animációs vezérlők egyik gyakori használata a rendszertevékenységek hosszadalmas művelet közbeni jelzése. Ez azért lehetséges, mert a műveletlánc az AVI-klip megjelenésekor folytatja a végrehajtást. A Windows Explorer Keresés párbeszédpanelén például egy mozgó nagyító jelenik meg, amikor a rendszer egy fájlt keres.
Jegyzet
Ha ComCtl32.dll 6-os verziót használja, a szál nem támogatott; győződjön meg arról, hogy az alkalmazás nem blokkolja a felhasználói felületet, különben az animáció nem fog bekövetkezni.
Az animációs vezérlők megjeleníthetnek egy tömörítetlen AVI-fájlból vagy egy futtatási hosszúságú (BI_RLE8) kódolással tömörített AVI-fájlból származó AVI-klipet. Hozzáadhatja az AVI-klipet az alkalmazáshoz AVI-erőforrásként, vagy a klip külön AVI-fájlként kísérheti az alkalmazást.
Jegyzet
Az AVI-fájlnak vagy erőforrásnak nem lehet hangcsatornája. Az animációs vezérlő képességei nagyon korlátozottak, és változhatnak. Ha olyan vezérlőre van szüksége, amely multimédiás lejátszási és rögzítési képességeket biztosít az alkalmazás számára, használhatja az MCIWnd vezérlőt. További információt a MCIWnd Window Classfájlban talál.
Ez a szakasz a következő témaköröket ismerteti.
Animációs vezérlő létrehozása
Az animációs vezérlő az ANIMATE_CLASS ablakosztályhoz tartozik. Animációs vezérlőt a CreateWindow vagy CreateWindowEx függvénnyel vagy a Animate_Create makróval hozhat létre. A makró az animációs vezérlőt a szülőablak bal felső sarkában helyezi el, és ha a ACS_CENTER stílus nincs megadva, a vezérlőelem szélességét és magasságát az AVI-klipben lévő keret méretei alapján állítja be. Ha ACS_CENTER van megadva, Animate_Create a vezérlőelem szélességét és magasságát nullára állítja. A SetWindowPos függvénnyel beállíthatja a vezérlő pozícióját és méretét.
Ha egy párbeszédpanelen vagy egy párbeszédpanel-erőforrásból hoz létre animációs vezérlőt, a rendszer automatikusan megsemmisíti a vezérlőt, amikor a felhasználó bezárja a párbeszédpanelt. Ha animációs vezérlőt hoz létre egy ablakban, kifejezetten meg kell semmisítenie a vezérlőt.
Tudnivalók az animációs vezérlőüzenetekről
Az alkalmazás üzeneteket küld egy animációs vezérlőnek a megfelelő AVI-klip megnyitásához, lejátszásához, leállításához és bezárásához. Minden üzenethez tartozik egy vagy több makró, amelyet használhat az üzenet explicit elküldése helyett.
Az animációs vezérlő létrehozása után az alkalmazás elküldi a ACM_OPEN üzenetet egy AVI-klip megnyitásához és a memóriába való betöltéséhez. Az üzenet egy AVI-fájl elérési útját vagy egy AVI-erőforrás nevét adja meg. A rendszer betölti az AVI-erőforrást az animációvezérlőt létrehozó modulból.
Ha az animációs vezérlő ACS_AUTOPLAY stílussal rendelkezik, a vezérlő közvetlenül az AVI-fájl vagy az AVI-erőforrás megnyitása után elkezdi lejátszani az AVI-klipet. Ellenkező esetben az alkalmazás a ACM_PLAY üzenet használatával indíthatja el az AVI-klipet. Az alkalmazás bármikor leállíthatja a klipet a ACM_STOP üzenet elküldésével. Az utolsó lejátszott keret megjelenítve marad, amikor a vezérlő befejezi az AVI-klip lejátszását, vagy amikor ACM_STOP parancsot küldik.
Az animációs vezérlők két értesítési kódot küldhetnek a szülőablakba: ACN_START és ACN_STOP. A legtöbb alkalmazás egyik értesítést sem kezeli.
Az AVI-fájl vagy az AVI-erőforrás bezárásához és a memóriából való eltávolításához az alkalmazás használhatja a Animate_Close makrót, amely ACM_OPEN küld a fájlnévvel vagy erőforrásnévvel NULL.
Alapértelmezett üzenetfeldolgozás
Ez a szakasz az ANIMATE_CLASS ablakosztály ablakművelete által kezelt ablaküzeneteket ismerteti.
Üzenet | Elvégzett feldolgozás |
---|---|
WM_CLOSE | Felszabadítja az animációs vezérlőhöz társított AVI-fájlt vagy AVI-erőforrást. |
WM_DESTROY | Felszabadítja az AVI-fájlt vagy az AVI-erőforrást, felszabadít egy belső adatstruktúrát, majd meghívja a DefWindowProc függvényt. |
WM_ERASEBKGND | Törli az ablak hátterét a statikus vezérlők aktuális háttérszínével. |
WM_NCCREATE | Lefoglal és inicializál egy belső adatstruktúrát, majd meghívja DefWindowProc. |
WM_NCHITTEST | A HTTRANSPARENT találati teszt értékét adja vissza. |
WM_PAINT | AVI-keret rajzolása az animációs vezérlőben. |
WM_SIZE | Ellenőrzi, hogy a vezérlő ACS_CENTER stílust használ-e. Ha a vezérlő nem teszi meg, akkor meghívja a DefWindowProc-t. Ellenkező esetben a vezérlőben középre igazítja az animációt, érvényteleníti a vezérlőt, majd meghívja DefWindowProc. |