ďťż
They seem to make lots of good flash cms templates that has animation and sound.
Podobne

an image

Alleluja! W samą porę dwa debile zorientowały się, że są dla siebie stworzeni!

Gdy program wywołuje funkcję OpenClipboard, Windows zachowu- je uchwyt wymagany przez tę funkcję. Uchwyt identyfikuje okno, które otwo- rzyło Schowek. Po odebraniu wywołania EmptyClipboard Windows nadaje temu oknu status nowego właściciela Schowka. Program używający opóźnionego przenoszenia musi przetworzyć w procedurze okna trzy komunikaty: WMţRENDERFORMAT, WMţRENDERALLFORMATS i WM-DESTROYCLIPBOARD. Windows wysyła procedurze okna komunikat WM-RENDERFORMAT, gdy inny program wywołuje funkcję GetClipboardData. Wartość wParam jest wymaganym formatem. Gdy przetwarzasz komunikat WM-RENDERFORMAT, nie otwieraj i nie usuwaj zawartości Schowka. Po pro- stu utwórz globalny blok pamięci dla formatu określonego przez wParam, prze- nieś do niego dane i wywołaj funkcję SetClipboardData z odpowiednim formatem i uchwytem globalnym. Musisz oczywiście zachować te informacje w programie, aby poprawnie skonstruować dane podczas przetwarzania komunikatu WM-RENDERFORMAT. Kiedy inny program wywołuje funkcję EmptyClipboard, Windows wysyła do programu komunikat WM DESTROYCLIPBOARD. Mówi on, że informacje potrzebne do skonstruowania danych Schowka nie są już po- trzebne. Nie jesteś już jego właścicielem. Jeśli program zakończy działanie, będąc właścicielem Schowka, a Schowek za- wiera uchwyty danych o wartości NULL, ustawione przez funkcję SetClipboard- Data, odbierzesz komunikat WM-RENDERALLFORMATS. Powinieneś otworzyć Schowek, usunąć jego zawartość, umieścić dane w globalnych blokach pamięci, dla każdego formatu wywołać funkcję SetClipboardData i zamknąć go. Komuni- kat WM RENDERALLFORMATS jest jednym z ostatnich, które odbiera proce- dura okna. Po nim następuje WM-DESTROYCLIPBOARD (ponieważ przetwo- rzyłeś wszystkie dane) i na koniec zwykły komunikat WM DESTROY. Jeżeli program może przekazywać do Schowka tylko jeden format danych (na przykład tekst), możesz połączyć przetwarzanie komunikatów WM-RENDERAL- LFORMATS i WM RENDERFORMAT. Kod będzie wtedy wyglądał podobnie do poniższego: case WMţRENDERALLFORMATS : OpenClipboard (hwnd) ; EmptyClipboard () ; , // nie powiodło się case WM_RENDERFORMAT : fumieszczenie tekstu w globalnym bloku pamięci] SetClipboardData (CF TEXT, hGlobal) ; 528 Część I: Podstawy if (message == WM_RENDERALLFORMATS) CloseClipboard () ; return 0 ; Jeśli program używa kilku typów danych, komunikat WMţRENDERFORMAT należy przetwarzać tylko dla formatu wymaganego przez wParam. Nie należy przetwarzać komunikatu WMţDESTROYCLIPBOARD, chyba że przeszkadza on programowi uzyskać informacje potrzebne do skonstruowania danych. Własne formaty danych Do tej pory zajmowaliśmy się tylko standardowymi formatami danychSchowka zdefiniowanymi przez Windows. Możesz jednak użyć Schowka do przechowa- nia własnych formatów danych. Wiele procesorów tekstów używa tej techniki do przechowania tekstu z informacją o czcionce i formatowaniu. Na pierwszy rzut oka pomysł ten może wydawać się bezsensowny. Jeśli zada- niem Schowka jest przenoszenie danych między aplikacjami, dlaczego mieliby- śmy umieszczać w nim dane wykorzystywane tylko przez jeden program? Od- powiedź jest prosta: Schowek służy również do przenoszenia danych wewnątrz jednego programu (lub między kilkoma jego kopiami), który, oczywiście, właści- wie rozpoznaje swój własny format. Dostępne jest kilka metod wykorzystania własnych formatów danych. Najłatwiej- sza używa danych w jednym ze standardowych formatów Schowka (tzn. tekst, bitmapa lub metaplik), ale mających znaczenie tylko dla twojego programu. W takim przypadku w wywołaniach SetClipboardData i GetClipboardData używa się jednej z następujących wartości wFormat: CF DSPTEXT, CF DSPBITMAP, CF DSPMETAFILEPICT lub CF DSPENHMETAFILE. Litery DSP to skrót od ang. display (wyświetlanie). Formaty te pozwalają Schowkowi Windows wyświetlać dane jako tekst, bitmapę lub metaplik. Jeśli jednak inny program wywoła funkcję GetClipboardData przy użyciu zwykłe- go formatu CF_TEXT, CF BITMAP, CF DIB, CF METAFILEPICT lub CF_ENH- METAFILE, nie uzyska danych. Jeżeli użyjesz jednego z tych formatów, aby umieścić dane w Schowku, musisz zastosować taki sam format, aby te dane pobrać. Skąd jednak wiemy, czy dane pochodzą z kopii twojego programu czy z innego programu, używającego jedne- go z tych formatów? Jednym ze sposobów jest sprawdzenie właściciela Schowka przez wywołanie: hwndClipOwner = GetClipboardOwner () : Następnie możesz uzyskać nazwę klasy okna dla tego uchwytu okna: TCHAR szClassName [32] ; Cpozostaie wiersze programu7 GetClassName (hwndClipOwner, szClassName, 32) ; Jeśli nazwa klasy jest taka sama jak programu, wtedy dane zostały umieszczone w Schowku przez inną kopię twojego programu. Innym sposobem jest użycie własnych formatów za pomocą flagi CF OWNER- DISPLAY. Globalny uchwyt pamięci w funkcji SetClipboardData równy jest NULL: Rozdział 12: Schowek 529 SetClipboardData (CF OWNERDISPLAY, NULL) ; Metody tej używają niektóre procesory tekstu, aby wyświetlić sformatowany tekst w obszarze roboczym podglądu Schowka dostarczanego z Windows. Oczywiście podgląd Schowka nie wie, że wyświetla sformatowany tekst. Z używaniem flagi CF OWNERDISPLAY przez procesor tekstu związane jest wyświetlenie obszaru roboczego podglądu Schowka. Ponieważ globalny uchwyt pamięci równy jest NULL, program wywołujący funkcję SetClipboardData z formatem CF OWNERDISPLAY (właściciel Schowka) musi prze- tworzyć komunikaty opóźnionego przenoszenia wysyłane przez Windows do wła- ściciela Schowka oraz pięć innych, dodatkowych, które wysyła podgląd Schowka: ů WM ŽSKCBFORMATNAME Podgląd Schowka wysyła ten komunikat do wła- ściciela Schowka, aby uzyskać nazwę formatu danych. Parametr lParam jest wskaźnikiem bufora, a wParam - maksymalną liczbą znaków dla tego bufora. Właściciel Schowka musi skopiować nazwę formatu Schowka do tego bufora. ů WM SIZECLIPBOARD Komunikat ten mówi właścicielowi Schowka, że zmie- nił się rozmiar obszaru roboczego podglądu Schowka. Parametr wParam jest uchwytem tego podglądu, a lParam - wskaźnikiem do struktury RECT, za- wierającą nowy rozmiar. Jeżeli struktura RECT zawiera same zera, podgląd Schowka jest zminimalizowany lub zniszczony. Mimo że można uruchomić tylko jedną kopię danego podglądu Schowka Windows, inne takie podglądy także mogą przesłać ten komunikat do właściciela Schowka. Obsługa kilku podglądów Schowka nie jest dla niego niemożliwa (zważywszy na to, że wPa- ram identyfikuje poszczególne podglądy), ale nie jest także łatwa