Udostępnij za pośrednictwem


Informacje o kontrolkach animacji

Kontrolka animacji to okno wyświetlające przeplatany klip (AVI) Audio-Video. Klip AVI to seria ramek map bitowych, takich jak film. Kontrolki animacji mogą wyświetlać tylko klipy AVI, które nie zawierają dźwięku.

Jednym z typowych zastosowań kontrolki animacji jest wskazanie działania systemu podczas długotrwałej operacji. Jest to możliwe, ponieważ wątek operacji kontynuuje wykonywanie podczas wyświetlania klipu AVI. Na przykład w oknie dialogowym Znajdowanie w Eksploratorze Windows jest wyświetlane ruchome szkło powiększające, gdy system wyszukuje plik.

Notatka

Jeśli używasz ComCtl32.dll w wersji 6, wątek nie jest obsługiwany; Upewnij się, że aplikacja nie blokuje interfejsu użytkownika lub animacja nie zostanie wykonana.

 

Kontrolka animacji może wyświetlać klip AVI pochodzący z nieskompresowanego pliku AVI lub pliku AVI skompresowanego za pomocą kodowania długich serii (BI_RLE8). Możesz dodać klip AVI do aplikacji jako zasób AVI lub klip może towarzyszyć aplikacji jako oddzielny plik AVI.

Notatka

Plik AVI lub zasób nie może mieć kanału dźwiękowego. Możliwości kontrolki animacji są bardzo ograniczone i mogą ulec zmianie. Jeśli potrzebujesz kontrolki, aby zapewnić możliwości odtwarzania i nagrywania multimediów dla aplikacji, możesz użyć kontrolki MCIWnd. Aby uzyskać więcej informacji, zobacz klasę okien MCIWnd .

 

W tej sekcji omówiono następujące tematy.

Tworzenie kontrolki animacji

Kontrolka animacji należy do klasy okna ANIMATE_CLASS. Kontrolkę animacji można utworzyć przy użyciu funkcji CreateWindow lub CreateWindowEx lub makra Animate_Create. Makro ustawia kontrolkę animacji w lewym górnym rogu okna nadrzędnego, a jeśli styl ACS_CENTER nie jest określony, ustawia szerokość i wysokość kontrolki na podstawie wymiarów ramki w klipie AVI. Jeśli określono ACS_CENTER, Animate_Create ustawia szerokość i wysokość kontrolki na zero. Możesz użyć funkcji SetWindowPos, aby ustawić położenie i rozmiar kontrolki.

Jeśli utworzysz kontrolkę animacji w oknie dialogowym lub z zasobu okna dialogowego, kontrolka zostanie automatycznie zniszczona po zamknięciu okna dialogowego przez użytkownika. Jeśli tworzysz kontrolkę animacji w oknie, musisz jawnie zniszczyć kontrolkę.

Informacje o komunikatach kontrolek animacji

Aplikacja wysyła komunikaty do kontrolki animacji w celu otwarcia, odtwarzania, zatrzymywania i zamykania odpowiedniego klipu AVI. Każdy komunikat ma co najmniej jedno makro, którego można użyć zamiast jawnego wysyłania komunikatu.

Po utworzeniu kontrolki animacji aplikacja wysyła komunikat ACM_OPEN, aby otworzyć klip AVI i załadować go do pamięci. Komunikat określa ścieżkę pliku AVI lub nazwę zasobu AVI. System ładuje zasób AVI z modułu, który utworzył kontrolkę animacji.

Jeśli kontrolka animacji ma styl ACS_AUTOPLAY, kontrolka rozpoczyna odtwarzanie klipu AVI natychmiast po otwarciu pliku AVI lub zasobu AVI. W przeciwnym razie aplikacja może użyć komunikatu ACM_PLAY, aby uruchomić klip AVI. Aplikacja może w dowolnym momencie zatrzymać klip, wysyłając komunikat ACM_STOP. Ostatnia odtwarzana klatka pozostaje wyświetlana po zakończeniu odtwarzania klipu AVI przez kontrolkę lub gdy zostanie wysłane ACM_STOP.

Kontrolka animacji może wysyłać dwa kody powiadomień do okna nadrzędnego: ACN_START i ACN_STOP. Większość aplikacji nie obsługuje obu powiadomień.

Aby zamknąć plik AVI lub zasób AVI i usunąć go z pamięci, aplikacja może użyć makra Animate_Close, które wysyła ACM_OPEN z nazwą pliku lub nazwą zasobu ustawioną na null.

Domyślne przetwarzanie komunikatów

W tej sekcji opisano komunikaty okien obsługiwane przez procedurę okna dla klasy okna ANIMATE_CLASS.

Komunikat Przetwarzanie wykonane
WM_CLOSE Zwalnia plik AVI lub zasób AVI skojarzony z kontrolką animacji.
WM_DESTROY Zwalnia plik AVI lub zasób AVI, zwalnia wewnętrzną strukturę danych, a następnie wywołuje funkcję DefWindowProc.
WM_ERASEBKGND Usuwa tło okna z użyciem obecnego koloru tła dla kontrolek statycznych.
WM_NCCREATE Przydziela i inicjuje wewnętrzną strukturę danych, a następnie wywołuje DefWindowProc.
WM_NCHITTEST Zwraca wartość testu trafienia HTTRANSPARENT.
WM_PAINT Rysuje ramkę AVI w kontrolce animacji.
WM_SIZE Sprawdza, czy kontrolka ma styl ACS_CENTER. Jeśli kontrolka nie wykonuje [jakiejś czynności], to wywołuje DefWindowProc. W przeciwnym razie wyśrodkuje animację w kontrolce, unieważnia kontrolkę, a następnie wywołuje DefWindowProc.