Rozdzia� 5. Inne narz�dzia W tym rozdziale: Korzystanie z programu Spy++ Dostosowywania menu Tools Przegl�danie klas Przegl�danie kodu �r�d�owego MFC Wraz z pakietem Visual C++ 6.0 dostarczanych jest wiele narz�dzi, kt�re znacznie mog� u�atwi� Ci prac� tw�rcy aplikacji. W tym rozdziale opiszemy te narz�dzia i poka�emy, w jaki spos�b mo�esz je efektywnie wykorzysta�. Spy++ System Windows przekazuje komunikaty do poszczeg�lnych okien, informuj�c je w ten spos�b o dzia�aniach u�ytkownika. Tak wi�c poznanie rodzaj�w wyst�puj�cych komunikat�w ma zasadnicze znaczenie dla odniesienia sukcesu w programowaniu Windows. Jednak przy ponad dwustu r�nych komunikatach czasem trudno zdecydowa� si�, na kt�re komunikaty powinno si� zwr�ci� uwag�. Program Spy++ (szpieg) pokazuje ka�dy komunikat, kt�ry zosta� przekazany do okna. Opr�cz tego, za jego pomoc� mo�na sprawdzi� jakie okna, w�tki i procesy nale�� do analizowanej aplikacji. Aby uruchomi� program, wybierz w menu Tools polecenie Spy++. Przy pierwszym uruchomieniu programu wy�wietlana jest lista okien dzia�aj�cych w systemie (rysunek 5.1). Mo�esz otworzy� tak�e inne okna programu, aby otrzyma� informacje na temat aktualnie dzia�aj�cych w systemie w�tk�w i proces�w. Te listy s� ze sob� �ci�le powi�zane, gdy� procesy posiadaj� w�tki, za� w�tki posiadaj� w�asne okna. Zaczynaj�c w�a�nie od listy okien, mo�esz �atwo zrozumie� koncepcj� powi�za� pomi�dzy oknami nadrz�dnymi i podrz�dnymi. W celu przedstawienia typowego sposobu korzystania z programu na rysunku 5.2 przedstawili�my widok programu z wy�wietlonymi trzema listami: list� proces�w, list� w�tk�w oraz list� okien. Cho� Spy++ mo�e podejrze� ka�dy program dzia�aj�cy w systemie, jednak w tym przypadku Spy++ szpieguje sam siebie. Na rysunku 5.2 wida� list� okien pokazuj�c�, �e g��wne okno posiada trzy okna potomne. Jedno z tych okien tak�e posiada w�asne okna potomne. Innymi s�owy, program Spy++ mo�e by� pomocny w informowaniu o strukturze okien tworz�cych interfejs u�ytkownika. Przekonasz si�, �e programi�ci d��� raczej do zmniejszenia ni� zwi�kszenia ilo�ci stosowanych okien. We�my na przyk�ad arkusz kalkulacyjny: czy oknami powinny by� poszczeg�lne kom�rki czy te� raczej grupy kom�rek? Je�li uruchomisz program Spy+ + i podejrzysz kt�rykolwiek z komercyjnych arkuszy kalkulacyjnych, oka�e si�, �e oknami s� ca�e grupy kom�rek. Dzieje si� tak z powodu stosunkowo du�ego narzutu zwi�zanego z utrzymaniem ka�dego okna. W zwi�zku z tym podobn� strategi� powiniene� zachowa� tak�e przy tworzeniu w�asnych aplikacji. Podczas projektowania programu dla Windows ewentualny b��d mo�e spowodowa� �e aplikacja nie zostanie poprawnie zako�czona. Cho� wszystkie okna programu mog� by� ukryte, sam proces w dalszym ci�gu dzia�a w systemie. Korzystaj�c z informacji wy�wietlanych w oknie proces�w, mo�esz szybko sprawdzi�, czy program zosta� poprawnie zamkni�ty. Do otwarcia okna Processes (procesy) s�u�y polecenie Processes w menu Spy programu Spy++. Okno proces�w zawiera list� wszystkich proces�w aktualnie dzia�aj�cych w systemie. Ka�dy proces zawiera podrz�dn� list� nale��cych do niego w�tk�w. (Pami�taj, �e w�tek jest podstawow� jednostk� wykonywania program�w w systemach Windows 95, Windows 98 oraz Windows NT). Z kolei ka�dy w�tek znajduj�cy si� na li�cie mo�e posiada� dodatkowo list� posiadanych przez siebie okien. Podobnie, przy dodawaniu do programu nowych w�tk�w, nie zawsze mo�esz mie� pewno��, �e kolejne w�tki s� tworzone i niszczone w odpowiednich momentach. Okno Threads (w�tki) programu Spy++ precyzyjnie informuje o ilo�ci w�tk�w aktualnie dzia�aj�cych w Twoim programie. Aby otworzy� okno w�tk�w, w menu Spy wybierz polecenie Threads. W oknie pojawi si� lista wszystkich w�tk�w w systemie, posortowanych wed�ug identyfikator�w w�tk�w. Elementy w oknie Threads tak�e posiadaj� elementy podrz�dne, kt�rymi tym razem s� okna nale��ce do danego w�tku. Rzut oka na t� list� wystarczy, aby przekona� si�, �e wi�kszo�� w�tk�w nie posiada w�asnych okien. Takie w�tki nie posiadaj� interfejsu u�ytkownika; zamiast tego dostarczaj� us�ug innym w�tkom, posiadaj�cym w�asne okna. Aby otrzyma� wi�cej informacji na temat proces�w, w�tk�w lub okien, kliknij kt�ry� z element�w w dowolnym oknie programu Spy++. Hierarchie pokazywane przez program Spy++ sugeruj� wygl�d hierarchii obiekt�w w systemie - na przyk�ad, procesy posiadaj� w�tki, za� w�tki posiadaj� okna. Nie mo�e istnie� proces bez w�tku, gdy� taki proces nie m�g�by wykona� �adnego zadania. Mo�e jednak istnie� w�tek nie posiadaj�cy okien. W�tek, kt�rego jedno z okien otrzyma�o komunikat, otrzymuje tymczasowo nieco wi�kszy priorytet, dzi�ki czemu interfejs u�ytkownika w Windows 95, Windows 98 i Windows NT szybko reaguje na polecenia wydawane przez osob� pracuj�c� z systemem. Aby pozna� komunikaty przekazywane do okna, w programie Spy++ otw�rz okno Messages. Istnieje kilka sposob�w wyboru okna przeznaczonego do podgl�dania, lecz sposobem zalecanym jest u�ycie �celownika". W menu Spy wybierz polecenie Find Window (znajd� okno), otwieraj�ce okno dialogowe zawieraj�ce �celownik". Po klikni�ciu opcji Show Messages (poka� komunikaty) w dolnej cz�ci okna, kliknij �celownik" i przeci�gnij go do tego okna, kt�rym jeste� zainteresowany. Jak wida� na rysunku 5.3, okno komunikat�w pokazuje wszystkie komunikaty przekazane do okna, zjedna lub dwiema liniami przypadaj�cymi na ka�dy komunikat. Kolumna po lewej stronie zawiera uchwyt - czyli identyfikator - okna otrzymuj�cego komunikat. Dla ka�dego komunikatu druga kolumna zawiera liter� P, S lub R. Powiemy o nich za moment. Trzecia kolumna zawiera nazw� otrzymanego komunikatu oraz rozkodowane warto�ci dw�ch czterobajtowych parametr�w przekazanych wraz z komunikatem. Nawet nie znaj�c znaczenia poszczeg�lnych komunikat�w, dzi�ki programowi Spy++ mo�esz przekona� si�, �e wi�kszo�� ruchu zwi�zanego z przekazywaniem komunikat�w wi��e si� z najmniejszymi nawet dzia�aniami u�ytkownika. Podczas przegl�dania okna komunikat�w mo�esz dowiedzie� si� czego� wi�cej na temat danego komunikatu, klikaj�c go prawym przyciskiem myszy i w menu kontekstowym wybieraj�c polecenie Help (pomoc). Druga kolumna okna informuje, czy komunikat zosta� wys�any (P - posted) do okna. R�nica pomi�dzy wys�aniem a przekazaniem polega na tym, �e w�tek przekazuj�cy komunikat czeka na odpowied�. Komunikaty wys�ane oczekuj� w kolejce komunikat�w (ang. message gueue) a� odbiorca (okno) je stamt�d pobierze. Takie komunikaty s�u�� do informowania odbiorcy, �e co� si� zdarzy�o, lecz nie trzeba na nie odpowiada�. Komunikaty przekazywane nie oczekuj� w kolejce komunikat�w; zamiast tego nadawca komunikatu oczekuje na odpowied�. Komunikat przekazany dzia�a podobnie do wywo�ania funkcji; nadawca komunikatu czeka a� odbiorca przetworzy komunikat i dostarczy warto�� zwrotn�. Zwracane odpowiedzi s� w programie Spy++ oznaczane liter� R (ang. reply) w drugiej kolumnie okna komunikat�w. Rysunek 5.3 przedstawia komunikaty wygenerowane w momencie, gdy u�ytkownik zamyka okno. Pierwszy komunikat pokazany w oknie, WM_SYSCOMMAND, rozpoczyna proces zamykania okna. Jest jedynym kolejkowanym komunikatem w ca�ym strumieniu komunikat�w. Ka�dy nast�pny komunikat wi��e si� z dodatkowymi krokami zwi�zanymi z procesem ko�czenia dzia�ania i zamykania okna. Proces zamykania trwa a� do ca�kowitego zniszczenia okna, co na rysunku 5.3 reprezentuj� komunikaty WM_DESTROY oraz WM_NCDESTROY. Gor�co zalecamy, aby� zapozna� si� ze sposobami u�ycia programu Spy++, �eby� m�g� skorzysta� ze wszystkich jego udogodnie� zwi�zanych ze zbieraniem informacji o systemie. Gdy zaczniesz tworzy� w�asne aplikacje dla Windows, z pewno�ci� docenisz warto�� tego programu. Dostosowywanie menu Tools Do menu Tools (narz�dzia) mo�na doda� nie wi�cej ni� szesna�cie polece�. Te polecenia mog� by� zwi�zane z dowolnymi programami dzia�aj�cymi w systemie operacyjnym. Opr�cz tego, do ka�dego polecenia dodanego do menu Tools mo�esz do��czy� odpowiednie parametry. Dodawanie polecenia do menu Tools Jako przyk�ad, w poni�szej procedurze przedstawimy spos�b dodania Notatnika Windows do menu Tools: 1. W menu Tools wybierz polecenie Customize (dostosuj), po czym kliknij zak�adk� Tools. 2. Aby doda� polecenie, przejd� do ko�ca listy Menu contents (zawarto�� menu) i dwukrotnie kliknij pust� lini� (oznaczon� pustym prostok�tem). Wpisz nazw� polecenia (tak�jaka ma pojawi� si� w menu), po czym wci�nij Enter. Na przyk�ad, aby doda� polecenie uruchamiaj�ce Notatnik Windows, mo�esz wpisa� nazw� Notatnik. 3. Je�li trzeba, zaznacz wpisan� przed chwil� nazw�. 4. W polu Command (polecenie) wpisz �cie�k� dost�pu i nazw� programu (po klikni�ciu przycisk oznaczonego wielokropkiem b�dziesz m�g� po prostu wskaza� program na dysku) - na przyk�ad c: \WINDOWS \NOTEPAD . EXE. 5. W polu Arguments (argumenty) wska� lub wpisz wszelkie argumenty, kt�re chcesz przekaza� do programu. Mo�esz u�y� przycisku oznaczonego strza�k� w celu rozwini�cia menu argument�w. Aby wstawi� argument do linii polece� programu, kliknij odpowiedni element listy. Visual C++ udost�pnia tak�e makra argument�w. 6. W polu Initial Directory (pocz�tkowa kartoteka) wpisz kartotek� plik�w, w kt�rej znajduje si� program, po czym kliknij przycisk Close. 7. Mo�esz u�y� przycisku oznaczonego strza�k� w celu wy�wietlenia menu kartotek. Wybierz z menu kartotek� w celu wstawienia odpowiedniej sk�adni do pola Ini- tial Directory. Gdy polecenie pojawi si� w menu Tools, mo�esz je wybra�, aby uruchomi� program. 8. Dokonuj�c edycji pola Menu Text (tekst menu), mo�esz zmieni� domy�ln� nazw� nowo dodanego narz�dzia. Mo�esz doda� argumenty przekazywane do programu, wpisuj�c je w polu Arguments, za� zmieniaj�c zawarto�� pola Initial Directory mo�esz zmieni� pocz�tkow� kartotek� programu. Modyfikowanie polece� w menu Tools Mo�esz modyfikowa� polecenia w menu Tools. W tej sekcji dowiesz si� to zrobi�: 1. W menu Tools wybierz polecenie Customize (dostosuj), po czym kliknij zak�adk� Tools. 2. Na li�...
Morfeusz__