Napisy do filmów w C++

0

Czy któryś z was Wielkich Hakerów napisał kiedyś kod w C++ do odtwarzania napisów do filmów np. na pulpicie, zarówno w formacie z klamrą jaki i czasowym?

0

Jeśli chodzi o zapis czasowy to chyba nie ma problemu: wczytujesz całą linie do jakiejś zmiennej szukasz trzeciego dwukropka i znak przed nim ucinasz i masz czas w którym to wyświetlić. W zapisie z klarami to podobnie tylko czas jest zapisany w ramkach i zbytnio nie wiem jak przeliczeć to na HHSS. Najprościej stworzyć tablicę [ilosc_linii][2] i co sekundę sprawdzanie czy jest taki czas w [aktualna_linia][0] i wyświetlanie napisu z [aktualna_linia][1]. Wyświetlanie na pulpicie to po prostu pobranie uchwytu pulpitu (chyba 0) i rysowanie po nim.
Jak chcesz to mogę napisać odpowiednie funkcje, tylko nie wiem czy do wtorku będzie to aktualne.

0

Największy problem jest w tym jak te napisy wyświetlać, z odczytem już sobie poradziłem ale na pulpicie to nie za bardzo można to wyświetlić bo są problemy z odświerzaniem trzeba jakąś forme stoworzyć z transparentem. Pod Xp nie ma problemu bo tam jest odpowiednia funkcja, ale na 98 to już się zatrzymałem.

0

Pobierz wskaźnik dfo pulpitu

HWND hwndDesktop=GetDestkopWindow();

A jak masz wskaźnik to powinineś już sobie poradzić z wrzuceniem tekstu;
Pulpit przecież też jest oknem :P

0

Mozesz od razu pobrac uchwyt kontekstu pulpitu GetDC ( NULL ) ; I wyswietlac tekst przy pomocy TextOut

0

Hmmm, nie oto mi chodzi czy ktoś kiedyś przglądał się jak są zrobione napisy w jakimś odtwarzaczu? Przy wyświetleniu napisów na pulpicie, trzeba go za każdym razem odświeżyć, a to powoduje chwilowe mrugnięcie całego pulpitu. Na winXP zrobiłem to tak: stworzyłem formę bez ramki z ustawinym transparentem(cała niewidoczna) i na niej wyświetlam napisy i spokojnie odświeżam, ale na win98 nie ma funkcji SetLayeredWindowAttributes i tu właśnie mam problem...

0

mozesz odswiezyc tylko obszar na ktorym znajduje sie napis i wtedy nie bedzie zadnego brzydkiego efektu mrugniecia obrazu :)

0

Można, ale cały czas piszę, że nie oto mi chodzi ;] czy ktoś kiedyś zauważył, że napisy w innych odtwarzaczać można przesuwać "łapiąc" je myszką? Właśnie dlatego są one wyświetlane na formie lub na jakimś specjalnym obiekcie, do którego można pobrać uchwyt i robić z nim inne cuda.

0

wklej.exe

0

a co to za problem przechwytujesz odpowiedni komunikat i przesuwasz

0

Myśle, że styl

WS_EX_TRANSPARENT

powinien rozwiązać problem ;)

0

Styl WS_EX_TRANSPARENT dla formy to byłby dobry pomysł, ale na takiej formie wyświetlanych napisów również nie widać ;] Zastanawiam się by stworzyć Static_Text z parentem NULL i nowa procedurą okna, bo w sumie on jest przeźroczysty. Tylko nie wiem czy ta się tam czcionki zmieniać ... ;] żartuje w C++ all się da ...
A może jest jednak ktoś, kto się tym problemem już zajmował ?

0
Marcinos napisał(a)

Styl WS_EX_TRANSPARENT dla formy to byłby dobry pomysł, ale na takiej formie wyświetlanych napisów również nie widać

A to ciekawe bo u mnie widać :P

Zastanawiam się by stworzyć Static_Text z parentem NULL i nowa procedurą okna, bo w sumie on jest przeźroczysty.

Nie sądze, żeby to coś dało. No ale próbować można :)

0

static_text wcale nie ma przezroczystego tla... wiec nie osiagniesz tego efektu w ten sposob, co do stylu WS_EX_TRANSPARENT, to z tym zawsze mialem problemy, nigdy nie pokazywalo mi sie przezroczyste tlo... a nawet jesli juz pokazalo to po przesunieciu formy przezroczyste tlo formy przesuwalo sie razem z forma :P... ale jesli uda Ci sie to jakos porzadnie obsluzyc to moze byc najlepsze wyjscie...

EDIT : Troche sobie poeksperymentowalem i rzeczywiscie mozna dac styl WS_EX_TRANSPARENT np. do klasy okna i spokojnie wyswietlac napisy z przezroczystym tlem

0

Do jagi:
jak sobie poradziłeś z tym, że już się tło nie przesuwa razem z formą?

1 użytkowników online, w tym zalogowanych: 0, gości: 1