Strona Domowa

Dawida Urbanskiego

- Dział: arts -

< Go Back to List

winapi/filmy

filmy i animacje w oknie - prosto!

autor: 2004-06-14 napiano:dawid
Wiedziałeś że możesz wyświetlać film/animacje dzięki samemu winapi?
Jest jedno ograniczenie:
za jej pomocą można wyświetlać jedynie pliki *.avi.

Zrobimy to w paru prostych krokach, kontrolką-obiektem takim samym jak np. button.

1. Inicjacja kontrolki
Użyta przez nas kontrolka nie należy do zestawy standardowo ładowanych do aplikacji.
bo i po co np. w kalkulatorze film?
Czy sprawi nam to problem? na szczeście maly
Wystarczy że zainicjujemy ją, podając w strukturze INITCOMMONCONTROLEX
wartość ICC_ANIMATE_CLASS.
a robimy to tak:

INITCOMMONCONTROLSEX icex; icex.dwSize = sizeof (INITCOMMONCONTROLEX);
icex.dwICC = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx (&icex);

2. Tworzenie kontrolki
teraz kontrolka jest zainicjomana i możesz ją utworzyć.
aby to zrobić użyjemy: Animate_Create

h = Animate_Create(hWnd, 100, WS_CHILD | WS_VISIBLE | ACS_AUTOPLAY, hInstance);

[opis funkcji: MSDN]
gdzie:
h - typu HWND to albo uchwyt do naszego okna animacji albo NULL jesli coś nie poszło
hWnd - typu HWND jest to uchwyt do okna rodzica, możesz wstawic GetDesktopWindow()
100 - typu int jest to identyfikator jaki ma miec nasze okno,
styl:
WS_CHILD - czyli nasze okno będzie dzieckiem okna hWnd
WS_VISIBLE - okno będzie od razu widoczne
ACS_AUTOPLAY - film/animacja będzie odtwarzane od razu
hInstance- typu HINSTANCE - możesz tu podac GetModuleHandle()

3. Ładowanie Filmu
teraz trzeba załadować animacje do kontrolki.
Zastosujemy funkcję Animation_OpenEx.

Animate_OpenEx(h, hInstance, "film.avi");

[opis makra: MSDN]
gdzie: h - typu HWND to albo uchwyt do naszego okna animacji, otrzymaliśmy go po wywolaniu Animate_Create.
hInstance- typu HINSTANCE - możesz tu podac GetModuleHandle()
"film.avi" - nazwa lub cała ścieżka do pliku z filmem.

4. Play i Stop.
Jeśli nie nadałeś flagi ACS_AUTOPLAY to do rozpoczęcia odtwarzania możesz użyć Animation_Play

Animate_Play(h, 0, -1, -1);

[opis makra: !BRAK!]
gdzie:
h - typu HWND to albo uchwyt do naszego okna animacji, otrzymaliśmy go po wywolaniu Animate_Create.
0 - od początku filmu
-1 - do konca filmu
-1 - ilość powtórzeń - (dla minus jeden: nieskończona pętla)


Analogicznie Animate_Stop

Animate_Stop(h);

[opis makra: !BRAK!]
gdzie:
h - typu HWND to albo uchwyt do naszego okna animacji, otrzymaliśmy go po wywolaniu Animate_Create.



główne zródło informacji: http://www.winapi.org/index.php?option=com_content&task=view&id=16&Itemid=29

Back to List


komentarze

brak komentarzy

dodaj komntarz

tools

qrcode:
qrcode
-

code by: Dawid Urbanski

Copyright © by Dawid Urbanski 2010 - 2020