C++ Vademecum profesjonalisty ksiazka Dodatek A Zawartość płytki CD ROM


Dodatki

Zawartość płytki CD-ROM Skorowidz


Dodatek A
Zawartość płytki CD-ROM


Dołączona do książki płytka CD-ROM jest podzielona na dwie części. Pierwsza z nich zawiera materiał związany z rozdziałami książki: znajdziesz w niej wszystkie programy demonstracyjne oraz pliki pomocnicze. Każdy rozdział, z wyjątkiem rozdziałów od 3. do 1. oraz rozdziału 18., posiada własny folder. Na przykład folder dla rozdziału 2 ma nazwę Rozdz2, folder dla rozdziału 29. ma nazwę Rozdz29 itd. Wewnątrz każdego z folderów rozdziałów znajdują się podfoldery z programami demonstracyjnymi opisywanymi w danym rozdziale. Przewodnik po tej części płytki znajdziesz w sekcji "Zawartość rozdziałów" w dalszej części tego dodatku.
Zwróć uwagę, że w treści książki, gdy opisujemy jakiś demonstracyjny program, zawsze podajemy także jego położenie na płytce CD-ROM. Na przykład, w rozdziale 10. była to poniższa informacja:
Położenie na płytce CD-ROM: RozdzlO\BlitDemo
Pamiętaj też, że jeśli do kopiowania plików z płytki na swój twardy dysk używasz Eksploratora Windows, wszystkie kopiowane pliki będą miały ustawiony atrybut tylko-do-odczytu. Możesz go łatwo zmienić z poziomu DOS-a: gdy znajdujesz się w którymś z folderów na swoim twardym dysku, wpisz ATTRIB * . * /s -r. To polecenie usunie atrybut tylko-do-odczytu z wszystkich plików w tym folderze i jego podfolderach.
Możesz kopiować pliki poleceniem DOS-a XCOPY. Gdy z tego skorzystasz, bit atrybutu nie będzie ustawiany.
Drugą część płytki CD-ROM zajmują narzędzia programistyczne. Ich opis znajdziesz w drugiej sekcji tego dodatku, zatytułowanej "Narzędzia programistyczne". Wszystkie pliki z tej części znajdują się w folderze Programming Tools na płytce CD-ROM.
Zawartość rozdziałów
Ta sekcja opisuje zawartość płytki CD-ROM związaną z treścią rozdziałów.
Rozdz.1.
Ten rozdział stanowi wprowadzenie do Windows 98 oraz do zestawu narzędzi Visual Studia. Przedstawiamy w nim programy C++. stworzoną w ATL-u kontrolkę ActiveX, applet Javy, aplikację J++ oraz program Visual Basica.
HelloWorld1
Pierwszy program stworzony dla tego rozdziału stanowi odmianę tradycyjnego programu "HelloWorld", od którego zwykle zaczynają programiści C i C++. Program został stworzony za pomocą MFC AppWizarda. Jedyne domyślne ustawienie, jakie zostało zmienione w oknach AppWizarda, wiązało się z tworzeniem aplikacji SDI, a nie MDI.
Ważne jest, by pamiętać, że za pomocą AppWizarda można tworzyć także programy nie oparte na modelu dokument-widok. To bardzo cenna opcja. Wiele razy zdarzało mi się tworzyć aplikacje typu dokument-widok, które na przykład jedynie wyświetlały grafikę i całkowicie ignorowały inne możliwości związane z dokumentami. Za każdym razem musiałem wtedy przeglądać kod źródłowy i usuwać linie odnoszące się do dokumentu.
HelloWorld2
Nie sądziłem, że istnieje jakieś miejsce dla aplikacji konsoli Win32 aż do chwili, gdy zdarzyły się dwie rzeczy. Zdarzyły się one, gdy rozpocząłem uczyć C++ w Rockingham Community College. Pierwsza aplikacja, którą zacząłem omawiać, została stworzona przez AppWizarda. Już w ciągu piętnastu minut zorientowałem się jak bardzo słuchacze się zgubili, szybko więc nauczyłem się, że należy zacząć od aplikacji konsoli Win32. Mając to na uwadze, mogłem zacząć uczyć studentów o C++, bez zagłębiania się w różnorodne projekty i klasy MFC.
Gdy odkryłem tę rewelację, zdałem sobie sprawę, że aplikacje konsoli Win32 są przydatne do tworzenia narzędzi, które nie wymagają interfejsu użytkownika. Prawie bez wysiłku mogę tworzyć programy wykonujące przydatne rzeczy, takie jak przenoszenie czy zmiana nazwy plików, zamiana plików binarnych na kod źródłowy oraz inne zadania, przydatne programistom. Dzięki temu nie zmarnowały się dawne lata, w których mogłem w pięć minut przepisać aplikację DOS-a, całkowicie zmieniając jej działanie. A oprócz tego teraz (zwykle) nie muszę się martwić o wskaźniki do segmentów czy brak pamięci.
Ten drugi program to aplikacja konsoli Win32, wyświetlająca napis "Hello Yisual C++ Console World!" Gdy tworzysz aplikację konsoli Win32, jedną z opcji, możesz w to wierzyć lub nie, jest właśnie aplikacja "Hello World".
HelloWorld3
Z pewnością wkrótce, zwłaszcza jeśli wziąć pod uwagę kierunek działań Microsoftu, będziesz zmuszony do tworzenia kontrolek ActiveX. W większości przypadków najlepiej jest skorzystać wtedy z kreatora ATL (Active Template Library). W ten sposób łatwo stworzysz kod startowy dla projektu ATL i zaoszczędzisz sobie czasu i zgryzot związanych z robieniem tego samodzielnie.
Mimo łatwości, z jaką możesz stworzyć kontrolkę ATL, narzut programowy okazuje się być względnie niewielki. Pełna kontrolka z minimalną ilością dodanego kodu (na przykład taka jak kontrolka HelloWorldS) nie zajmuje więcej niż 37K kodu. Kontrolki ATL mają mnóstwo opcji, z których jedną jest możliwość wykorzystania MFC. Jeśli jednak chcesz skorzystać z MFC, przygotuj się na dodatkowe 100K kodu narzutu.
Rozdz.2. Learnide
Ten rozdział opisuje IDE (Integrated Development Environment, zintegrowane środowisko programistyczne) w Visual Studio. Dowiesz się w nim, jak korzystać z poszczególnych narzędzi pakietu w celu zwiększenia swojej produktywności.
Program Learnide pomoże Ci w poznaniu Visual Studia. Dzięki niemu będziesz mógł sprawdzić, w jaki sposób narzędzia Visual Studia pomagają w poprawieniu wydajności pracy.
Położenie na płytce CD-ROM: Rozdz2\Learnide
Nazwa programu: Learnide
W tym folderze znajduje się program w ukończonej postaci.
Rozdz.8.
W tym rozdziale nauczysz się odbierania poleceń wydawanych za pomocą myszy i klawiatury. Dwa programy demonstracyjne pokazują sposób tworzenia funkcji obsługi komunikatów oraz wykorzystywania ich przy obsłudze komunikatów.
MouseDemo1
Ten prosty program demonstracyjny pokazuje, w jaki sposób można reagować na najważniejsze zdarzenia myszy. Program obsługuje ruchy myszki, a także wciskanie i zwalnianie lewego i prawego przycisku. Nie obsługuje zdarzeń związanych ze środkowym przyciskiem myszki.
MouseDemo2
Aby zademonstrować sposób zmiany kształtu wskaźnika myszy wewnątrz aplikacji, napisaliśmy specjalny program o nazwie MouseDemo2. Program ładuje szesnaście wskaźników myszy i wybiera je w zależności od położenia myszki w oknie.
Aplikacja sprawdza, w którym miejscu okna widoku znajduje się wskaźnik myszy. Podzielenie widoku na 16 prostokątnych obszarów pozwala na podjęcie decyzji, który ze wskaźników powinien zostać wybrany. Gdy uruchomisz program i przesuniesz myszkę w obrębie okna widoku, zobaczysz zmiany kształtu wskaźnika. Oprócz tego w górnej części okna wyświetlana jest nazwa aktualnie stosowanego kształtu wskaźnika.
Rozdz.9.
Ten rozdział omawia podstawy grafiki. W trzech zawartych w nim programach demonstracyjnych pokazujemy sposoby wykonywania operacji graficznych.
PenBrushDemo
Pierwszy program demonstracyjny z tego rozdziału pokazuje sposób użycia obiektów CPen oraz CBrush. Ponieważ te klasy MFC reprezentują pióra i pędzle GDI, ułatwiają programiście rysowanie z użyciem piór i pędzli.
Za pomocą opcji w menu możesz wybierać pomiędzy rysowaniem linii a rysowaniem prostokątów. Inne polecenia menu pozwalają na określenie grubości linii oraz tego, czy będą rysowane ramki prostokątów.
Podczas rysowania linii w oknie zobaczysz zdefiniowane desenie linii, takie jak PS_DASH czy PS_DOT. Podczas rysowania prostokątów zobaczysz desenie wypełniania, takie jak
HS_BDIAGONAL Czy HS_CROSS.
GraphicsDemo1
Ten program ilustruje podstawowe techniki rysowania w oknie. Podczas działania programu możesz rysować linie, prostokąty oraz elipsy. Możesz wybrać kolor obiektów w oknie dialogowym wyboru koloru. Oprócz tego możesz wybrać kod ROP, zmieniając tryb rysowania w oknie.
Aby narysować coś w oknie, kliknij w nim lewym przyciskiem myszy. Aby zmienić operację rysunkową, kolor czy tryb, użyj poleceń w menu.
GraphicsDemo2
Ten program pokazuje sposób tworzenia prostokąta obcinania i użycia go do ograniczenia obszaru okna, w którym mogą odbywać się operacje rysunkowe. Program pozwala na przesuwanie prostokąta obcinania. Aby przenieść prostokąt obcinania w inne miejsce, kliknij w tym miejscu lewym przyciskiem myszy.
Aby narysować figurę w kształcie gwiazdy, przesuń myszką w obrębie okna. Rysowana gwiazda będzie wyśrodkowana względem wskaźnika myszy. Jednak ujrzysz tylko część figury, gdyż jej rysowanie jest ograniczone przez prostokątny obszar obcinania.
Rozdz.10.
W tym rozdziale omawiamy bitmapy i palety. Podfoldery w folderze RozdzlO zawierają programy i pliki związane z materiałem omawianym w tym rozdziale.
BlitDemo
Program BlitDemo ilustruje wykonywanie popularnych operacji z użyciem obiektów CBitmap. Same bitmapy są zawarte jako obiekty zasobów i ładowane przy użyciu funkcji składowej LoadBitmap (). Program korzysta z czterech różnych operacji rastrowych:
SRCCOPY, SRCINVERT, SRCAND Oraz SRCPAINT.
ShowDIB
Różne
Ten program demonstracyjny pokazuje sposób użycia stworzonej przez nas klasy coib. Ta klasa umożliwia ładowanie, zapisywanie i wyświetlanie plików DIB. Możesz wykorzystać tę klasę w swoich programach, dołączając do ich projektów pliki DIB.cpp oraz DIB.h.
W folderze RozdzlO znajdują się dwa pliki. Plik HSY.c zawiera pojedynczą funkcję zamieniającą wartości RGB na wartości HSV. Plik Transparent.c zawiera pojedynczą funkcję rysującą obiekt CBitmap na ekranie, lecz maskującą go przy tym przezroczystą maską.
Rozdz.11. FileExceptionTest
Ten rozdział uczy podstaw implementacji obsługi wyjątków w aplikacjach C++ dla środowiska Win32. Oparta na oknie dialogowym aplikacja FileExceptionTest ilustruje sposób zgłaszania i wychwytywania wyjątków (typu CFiieException) w programach C++/MFC. Różne przyczyny wyjątków CFileException są ładowane do rozwijanej listy w funkcji Oninitoiaiog (). Po wybraniu pozycji tej listy następuje zgłoszenie i wychwycenie wyjątku wskazanego rodzaju. Celem tego programu demonstracyjnego jest zilustrowanie sposobu zgłaszania i wychwytywania wyjątków przez różne funkcje.
Rozdz.12. MiniEdit
W tym rozdziale przyjrzymy się bliżej kontrolkom Windows oraz reprezentującym je klasom MFC. Poznasz proces tworzenia kontrolek oraz zrozumiesz różnicę pomiędzy umieszczeniem kontrolki w oknie dialogowym a umieszczeniem jej w oknie. Omawiane są także różne rodzaje kontrolek oraz sposoby ich wykorzystania.
Demonstracyjny program MiniEdit ilustruje sposób wykorzystania wielu z omawianych kontrolek. Program jest bardzo prostym edytorem plików tekstowych i rozpoznaje jedynie pliki z rozszerzeniem .mnę. Korzystając z tej aplikacji, możesz wyszukiwać pliki w kartotekach, a także otwierać, wyświetlać, edytować i zapisywać te pliki. Możesz również tworzyć nowe pliki. Mini edytor został stworzony za pomocą kreatora AppWizard w oparciu o aplikację okna dialogowego.
Rozdz.13. AddressBook
W tym rozdziale dowiesz się wielu rzeczy o możliwościach klasy CDialog. Oprócz tego dowiesz się o mechanizmie DDX, implementacji funkcji obsługi dla komunikatów kontrolek, tworzeniu zarówno modalnych jak i niemodalnych okien dialogowych, a także o wyprowadzaniu własnych klas kontrolek.
W trakcie rozdziału jest budowana oparta na oknie dialogowym aplikacja o nazwie AddressBook, demonstrująca wiele z technik przydatnych przy projektowaniu i programowaniu okien dialogowych. Program uczy koncepcji wykorzystania mechanizmów DDX i DDV do wymiany danych pomiędzy zmiennymi aplikacji a kontrolkami okna dialogowego. Oprócz tego poznajemy sposób tworzenia własnych kontrolek, pochodzących od standardowych kontrolek Windows. Na koniec program pokazuje sposób serializacji danych w aplikacji opartej na oknie dialogowym.
Rozdz.14. ModalPropertySheetDemo
W tym rozdziale poznasz informacje na temat tych dwóch klas MFC oraz nauczysz się sposobu ich implementacji zarówno w modalnych, jak i niemodalnych arkuszach właściwości.
Gdy już poznasz różne opcje i sposoby implementacji tych klas, W przykładowym programie ModalPropertySheetDemo zademonstrujemy różne odmiany zakładek. Stopniowo poznając przykładowy program, nauczysz się wykonywania wielu czynności związanych z oprogramowaniem arkuszy i kart właściwości. Do omawianych zagadnień będą należeć funkcje arkusza właściwości, takie jak usuwanie, przemianowywanie oraz przemieszczanie standardowych przycisków arkusza. Oprócz tego opanujesz zaawansowane zagadnienia związane z kartami właściwości, takie jak zmiana tytułu i czcionki zakładki oraz implementacja mnemonik na zakładkach.
Rozdz.15.
MFC oferuje mnóstwo narzędzi przeznaczonych do pracy z danymi. W tym rozdziale omawiamy klasy cstring, CFile a także wbudowaną w klasę cwnd obsługę systemowego schowka. Poznajemy także kilka klas nie będących klasami MFC, ułatwiających posługiwanie się pewnymi innymi rodzajami danych. Jedną z takich klas jest klasa oferująca dostęp do portu szeregowego. Z naszą klasą es er ia l możesz łączyć się poprzez modem z innym komputerem. Kolejną rzeczą pominiętą w MFC jest łatwy dostęp do Rejestru. Obecnie jest to zalecany sposób przechowywania informacji konfiguracyjnych dla aplikacji, więc jako programista dość często powinieneś mieć z Rejestrem do czynienia.
StringDemo
Demonstracyjny program o nazwie StringDemo ilustruje sposób użycia podstawowych funkcji klasy cstring. Po uruchomieniu aplikacja ładuje plik tekstowy o nazwie AESOP.txt, zawierający pewną ilość pouczających greckich przypowieści.
W tym pliku możesz poszukiwać dowolnego ciągu znaków. Możesz zdecydować się na wyszukiwanie z uwzględnianiem lub bez uwzględniania wielkości liter. Możesz także wyszukiwać ciągi znaków i zastępować je innymi. Gdy zostanie przeprowadzona operacja wyszukiwania i zastępowania, zmodyfikowany tekst możesz przejrzeć w programie WordPad. (Podczas przeglądania tekstu w tym programie pamiętaj, by włączyć zawijanie wierszy).
FileDemo
Klasy CFile często będziesz używał do ładowania i zapisywania buforów danych. Z tego powodu napisaliśmy program FileDemo, który zajmuje się właśnie tym. Umożliwia on stworzenie listy plików, a następnie zapisuje je wszystkie w jednym dużym pliku. Możesz także skopiować pojedynczy plik do innego pliku. W tym celu wybierz po prostu polecenie Skopiuj pierwszy plik. Program skopiuje wtedy pierwszy plik z listy do pliku o wskazanej nazwie.
CompressFile
Ta kartoteka zawiera wszystkie pliki dla biblioteki klas kompresji. Kompilując ten projekt, możesz stworzyć plik .lib biblioteki klas.
CompressDemo
Ten prosty program demonstruje zastosowanie naszej biblioteki klas. Używając Eksploratora Windows, uruchom program CompressDemo.exe, będący aplikacją wielodokumentową. Gdy go uruchomisz, ujrzysz jedynie puste okno.
CopyFile
Jedną z funkcji związanych z operacjami na plikach, jakiej najczęściej potrzebowałem w swoich programach, była funkcja kopiująca zawartość pliku. Napisałem taką funkcję i często używałem jej w swoich programach. Funkcja nosi nazwę CopyFile () i wymaga podania trzech argumentów. Pierwszy z nich to nazwa pliku źródłowego, drugi to nazwa pliku docelowego, zaś trzeci to rozmiar bufora, jaki ma zostać użyty podczas operacji kopiowania. Jeśli jednak podany bufor będzie zbyt duży, operacja może się nie powieść, tak więc zalecam używanie bufora o rozmiarze mniej więcej SOK. Funkcja zwraca wartość logiczną określającą, czy operacja zakończyła się powodzeniem.
Funkcja CopyFile o wychwytuje wszystkie wyjątki plików i wyświetla odpowiednie komunikaty. Stanowi także część programu FileDemo opisywanego w dalszej części rozdziału.
Registry
Serial
Aby ułatwić ci dostęp do Rejestru, stworzyliśmy specjalną klasę o nazwie CRegistry. Aby wykorzystać klasę w swoim projekcie, po prostu skopiuj pliki do swojej kartoteki, a następnie dołącz je do projektu. W rozdziale znajdziesz opis sposobu użycia funkcji składowych wraz z odpowiednimi przykładami.
W kartotece Serial znajduje się kod źródłowy klasy CSerial. Ta klasa pozwala na łatwe uzupełnienie programu o komunikację szeregową.
Rozdz.16.s
W tym rozdziale pokazujemy, w jaki sposób możesz odtwarzać pliki MIDI, dźwięki zarejestrowane w plikach WAV oraz muzykę z płytek CD.
WaveDemo
Pierwszy program demonstracyjny w tym rozdziale odtwarza sześć różnych zarejestrowanych wcześniej dźwięków. Trzy z nich są zapisane na dysku jako pliki . WAV. Pozostałe trzy stanowią część pliku zasobów programu. Użytkownik może wybrać dowolny z sześciu dźwięków i odtworzyć go. Dźwięki mogą być odtwarzane bezpośrednio z dysku lub z pliku zasobów lub mogą być załadowane do pamięci i odtworzone później.
MIDI Demo
Program MIDIDemo pokazuje, w jaki sposób można odtwarzać i operować plikami MIDI. W kartotece projektu znajdują się cztery przykładowe pliki MIDI, z których każdy może zostać załadowany i odtworzony. Program do wykonywania operacji MIDI korzysta z klasy CMidi. Dzięki temu odtwarzanie plików jest bardzo łatwe.
CDPlayer
Niewiele programów odtwarza muzykę CD. Większość programów ładuje i odtwarza pliki MIDI. Ten program odtwarza dane dźwiękowe wysokiej jakości zawarte na muzycznych płytkach CD, wykorzystując do tego klasę CGDAudio.
Ponieważ dołączona do książki płytka CD-ROM nie zawiera żadnych ścieżek dźwiękowych, będziesz musiał włożyć do napędu jedną z własnych płytek muzycznych. Dopiero potem będziesz mógł odtwarzać dowolną ze ścieżek muzycznych na płytce. Program pozwala także na wstrzymanie odtwarzania i przemieszczania się w obrębie każdej ze ścieżek.
Biblioteka
Dla wygody umieściliśmy na płytce pliki Sound.lib oraz Sound.h. Dzięki nim będziesz mógł łatwiej uzupełnić swoją aplikację o dźwięki, gdyż nie będziesz musiał dołączać do projektu żadnych plików źródłowych.
Rozdz.17.
Clock
W tym rozdziale omawiamy dwa bardzo użyteczne mechanizmy Windows: timery oraz przetwarzanie w czasie jałowym. Z ich pomocą możesz tworzyć aplikacje cały czas reagujące na polecenia użytkownika, lecz jednocześnie wykonujące w tle swojej zadanie. Są one tak popularne, że któregoś z nich będziesz używał w prawie każdej swojej aplikacji.
Pierwszy z dwóch programów demonstracyjnych ilustruje sposób tworzenia z użyciem tunera aplikacji udającej zegarek. W funkcji SetTimer () jako trzeci parametr przekazujemy wartość NULL, w związku z czym do okna będą wysyłane komunikaty WMJTIMER.
Ten program umożliwia wyświetlanie zegarka analogowego lub cyfrowego. Aby zmienić sposób wyświetlania, po prostu wybierz odpowiednią pozycję w menu Rodzaj.
OnldleDemo
Program Onldledemo pokazuje, w jaki sposób przesłonić i wykorzystać funkcję onidie (). Przedstawia wartości numeryczne parametru ICount oraz czas, jaki upłynął od wyze-rowania tego licznika.
Program OnldleDemo przedstawia wykres wskazujący względną ilość czasu spędzaną przez program w funkcji OnIdle().
Program rysuje także pasek stanowiący graficzny wskaźnik ilości czasu, jaką program spędza w funkcji OnIdle (). Poruszając myszką lub wykonując różne operacje związane z oknem, na przykład zmieniając jego rozmiary, powodujesz, że pasek się kurczy. Oznacza to, że komunikaty oczekujące w kolejce redukują ilość czasu, jaki program może poświęcić wykonywaniu funkcji Onidle ().
Rozdz.19. HexView
W tym rozdziale zajmujemy się klasami CDocument oraz cview, a także pokazujemy ich zastosowanie w prostej, jednodokumentowej (SDI, Single Document Interface) aplikacji.
Demonstracyjny program HexView wykorzystuje interfejs SDI, przedstawiając użytkownikowi szesnastkową reprezentację zawartości pliku oraz odpowiadający jej tekst, wyświetlony w prawej części okna. Aplikacja korzysta z klasy CScroliview, pozwalając na dostosowywanie rozmiarów pasków przewijania zależnie od bieżącej zawartości okna widoku.
Rozdz.20.
Rozdział 20. dotyczy aplikacji wielodokumentowych (MDI, multiple document interface) oraz okien dzielonych. Podfoldery foldera Rozdz20 zawieraj ą pro gramy i pliki związane z materiałem zawartym w tym rozdziale.
PaintObj
Ten przykładowy program został zbudowany z użyciem pojedynczej klasy dokumentu, CPaintobjDoc, jednak skorzystano Z klas CMultiDocTemplate Oraz CMDIChildWnd w celu stworzenia aplikacji MDI umożliwiającej użytkownikowi tworzenie prostych rysunków w kilku oknach naraz.
DynSplit
Program demonstracyjny Dynsplit pokazuje sposób użycia klasy cspiitterwnd do tworzenia i alokowania dynamicznie dzielonych okien w aplikacji SDI. Program nie robi wiele więcej poza wyświetleniem dzielonych okien i ich obsługą. Możesz jednak wykorzystać go jako punkt wyjścia dla własnych aplikacji korzystających z dzielonych okien.
Rozdz.21.
Rozdział 21. zawiera procedury drukujące. Podfoldery foldera Rozdz21 zawieraj ą programy i pliki związane z materiałem zawartym w tym rozdziale.
HexViewMDI
Program HexVievoMDl korzysta z MFC do drukowania plików tekstowych wyświetlanych przez program w trybie szesnastkowym. Ponieważ program korzysta z interfejsu MDI, możesz załadować tyle plików, ile chcesz, a następnie każdy z nich osobno wydrukować. Dzięki temu zobaczysz, w jaki sposób program oblicza rozmiary stron oraz jak wiele stron zostanie wydrukowanych po zażądaniu wydruku.
Rozdz.22. MFCControl
Ten rozdział omawia zaawansowane tematy MFC. Nauczysz się w nim korzystać z możliwości MFC do uzupełniania programów o różne zaawansowane elementy.
Kontrolka MFCControl może być użyta w innych programach. Możesz z niej korzystać w Yisual Basicu, Yisual J++ oraz w Yisual C++.
Rozdz.23. BarsDemo
Ten rozdział omawia paski stanu oraz paski narzędzi. Na dołączonej do książki płytce CD-ROM znajduje się program demonstracyjny pokazujący sposób wykorzystania pasków narzędzi w aplikacji MFC.
BarsDemo jest prostym programem do rysowania, pozwalającym na rysowanie z użyciem różnych kształtów i kolorów. Ilustruje także sposób dodania bitmap do przycisków na pasku narzędzi.
Rozdz.24.
Ten rozdział omawia wiele aspektów tworzenia standardowych kontrolek widoku listy i widoku drzewa.
ListCtrIDemo
Ten program ilustruje podstawy kontrolek widoku listy, takie jak tworzenie kontrolki, dodawanie kolumn i wierszy, ustawianie trybu wyświetlania oraz przypisywanie obrazków kolejnym wierszom danych. Oprócz tego, ten demonstracyjny program uczy dynamicznej zmiany szerokości kolumn, tak aby mimo oszczędzenia cennej powierzchni ekranu wszystkie kolumny były widoczne. Program uczy sortowania zawartości kolumn oraz aktualizowania kontrolki nagłówka w celu wskazania, według jakiego kryterium kolumna została posortowana.
TreeCtrIDemo
Ten program ilustruje podstawy kontrolek widoku drzewa, takie jak tworzenie kontrolki, dodawanie danych do kontrolki oraz ustawianie różnych stylów. Oprócz tego ten demonstracyjny program uczy edycji "na miejscu" etykietek elementów drzewa oraz prezentacji menu kontekstowych specyficznych dla poszczególnych elementów.
Rozdz.25. ThreadDemo
Ten rozdział omawia trudne zagadnienia związane z wątkami: ich tworzenie oraz unikanie pułapek.
Ten program demonstracyjny implementuje program wielodokumentowy. Każde okno jest aktualizowane przez osobny wątek. Tak więc jeśli stworzysz cztery okna potomne, do rysowania w każdym z nich zostaną użyte cztery wątki.
W oknach rysowany jest wzór spirografu. Kształt i kolor spirografu określają trzy wartości całkowite: nFixedRadius, nMovingRadius oraz nMovingOf f set. Przy każdym rysowaniu okna następuje zwiększenie tych wartości. Dzięki temu wzór zmienia się w czasie, tworząc zadziwiający efekt graficzny.
Rozdz.26.
Ten rozdział uczy koncepcji związanych z ODBC SDK i sposobem jego użycia.
Database
Ten folder zawiera przykładową bazę danych (vc6bib.mdb) używaną w przykładach w tej części książki przy okazji omawiania ODBC (rozdział 26.), klas baz danych MFC (rozdział 27.) oraz DAO (rozdział 28.).
ODBCDemo
Ten program demonstracyjny jest prostą aplikacją używającą wielu z funkcji opisywanych w rozdziale. Ten program ilustruje użycie wielu z podstawowych funkcji ODBC do alokowania różnych uchwytów, łączenia się ze źródłem danych, pobierania danych, dealo-kowania uchwytów oraz odłączania się od źródła. Choć ta aplikacja jest bardzo prosta, tych samych funkcji możesz użyć we własnej aplikacji, bez względu na jej złożoność. Dodatkowo, program dynamicznie przygotowuje polecenia SQL, wykonuje te polecenia, łączy zmienne z kolumnami zestawu wyników oraz pobiera dane z tego zestawu, używając wielu funkcji ODBC SDK. Aby uruchomić program, musisz najpierw stworzyć nazwę źródła danych ODBC i wskazać jej bazę danych zawartą na dołączonej do książki płytce. Choć do uruchomienia programu nie musisz posiadać aplikacji Microsoft Access, jednak będziesz jej potrzebował, jeśli zechcesz otworzyć i zmodyfikować naszą demonstracyjną bazę danych. Baza danych używana przez program znajduje się w tej samej kartotece co kod źródłowy. Aby stworzyć nazwę źródła danych, wykonaj kroki opisane w rozdziale.
ODBCCIasses
Ta biblioteka DLL zawiera wydajną klasą (coDBCDynamic) pokazującą niektóre z możliwości ODBC. Ta klasa pozwala na pobieranie danych z dowolnego źródła danych ODBC nawet wtedy, gdy aplikacja nie wie niczego o schemacie tego źródła. Jedyne, co aplikacja musi zrobić w celu pobrania danych, to przekazanie nazwy źródła danych oraz polecenia SQL, jakie ma zostać wykonane. Klasa zajmie się wszystkim innym, wykorzystując funkcje SQLNumResuktCols () oraz SQLDescribeCol () do dynamicznego odczytania typów danych zawartych w każdej kolumnie zestawu wyników. Następnie każda z typów danych SQL kolumn jest konwertowany na odpowiedni typ danych C++, dzięki czemu dla danej kolumny można zaalokować odpowiednią ilość pamięci. Po za-alokowaniu pamięci, za pomocą funkcji SQLGetcata (), są pobierane dane. W oparciu o typ odczytanych danych pamięć jest odwzorowywana na odpowiednią zmienną CD-bYariant i wstawiana do kolekcji MFC, tak aby mogła ją pobrać aplikacja, na podstawie nazwy kolumny lub przez przejście przez całą kolekcję.
ODBCDynamicTest
Ta aplikacja stanowi przykład użycia klasy coDBCDynamic. Oparta na oknie dialogowym aplikacja ODBCDynamicTest wyświetla rozwijaną listę z wszystkimi nazwami źródeł danych zarejestrowanych w systemie. Gdy wybierzesz któreś ze źródeł, z kolejnej roz-
wijanej listy są ładowane wszystkie tabele i kwerendy w tym źródle. Po wybraniu tabeli lub kwerendy program korzysta z klasy coDBCDynamic do załadowania wszystkich rekordów i wyświetlenia ich w kontrolce widoku drzewa. Zwróć uwagę, że wszystko odbywa się dynamicznie i aplikacja nie musi niczego wiedzieć o schemacie źródła danych, które przegląda.
Rozdz.27.
Ten rozdział omawia tematy związane z programowaniem przy użyciu klas baz danych MFC.
UserMaintenance
Ten program używa klas baz danych MFC do zaprezentowania w pełni funkcjonalnego narzędzia do obsługi baz danych. Zostały w nim użyte klasy baz danych MFC, CData-base oraz CRecordset, dzięki którym można przeprowadzać wszystkie podstawowe operacje (dodawanie/usuwanie/aktualizacja) na przykładowej bazie danych Accessa (zawartej na płytce CD-ROM). W aplikacji korzystamy zarówno z dostępu sekwencyjnego, jak i przypadkowego. Podczas inicjalizacji aplikacja odczytuje wszystkich użytkowników z tabeli userMaster i ładuje ich do kontrolki listy, ilustrując sposób w jaki obiekt CRecodset może sekwencyjnie odczytywać zestaw rekordów. Gdy zostanie wybrana nazwa użytkownika na liście, w oknie dialogowym są wyświetlane jego dane (nazwa, stan itd.). Po wyświetleniu danych użytkownika można je zmienić i zaktualizować, klikając odpowiedni przycisk. Do aktualizacji i usuwania rekordów program korzysta z funkcji ExecuteSQL () klasy CDatabase. Zwróć uwagę, że programy z tego rozdziału korzystają z demonstracyjnej bazy danych (vc6bib.mdb) zawartej w kartotece Rozdz26\Database. Aby program mógł działać, musisz zarejestrować nazwę źródła danych związaną z tą bazą.
Parametrized
Program demonstracyjny Parametrized jest podzielony na dwie części. Pierwsza z nich ilustruje użycie parametryzowanego rekordsetu w praktycznej aplikacji. Podobnie jak w poprzednim programie demonstracyjnym, także i w tym przypadku posługujemy się oknem dialogowym wyświetlającym informacje o użytkownikach z tabeli UserMaster. Jednak w obecnym programie można wpisać identyfikator UserID, który zostanie użyty do wyszukania w tabeli UserMaster podanego użytkownika. Jeśli użytkownik zostanie znaleziony, w oknie dialogowym pojawią się informacje na jego temat. Jeśli nie, program wyświetli odpowiednie okno dialogowe.
Druga część programu ilustruje użycie parametryzowanej kwerendy zwracającej dane. Ta kwerenda jest oparta na połączeniu kilku tabel w demonstracyjnej bazie danych Accessa. Kwerenda będzie wymagać tylko jednego parametru: identyfikatora UserlD. Gdy identyfikator UserlD wprowadzony w oknie dialogowym zostanie znaleziony w tabeli UserMaster, zostanie wywołana kwerenda pobierająca pozostałe dane na temat użytkownika. Te informacje zostaną wyświetlone w oknie dialogowym.
Rozdz.28.
Ten rozdział omawia tematy związane z programowaniem DAO w aplikacjach Yisual C++.
DaoUserMaintenance
Ten program używa klas baz danych MFC DAO do zaprezentowania w pełni funkcjonalnego narzędzia do obsługi baz danych. Zostały w nim użyte klasy baz danych MFC DAO, CDaoDatabase oraz CDaoRecordset, dzięki którym można przeprowadzać wszystkie podstawowe operacje (dodawanie/usuwanie/aktualizacja) na przykładowej bazie danych Accessa (zawartej na płytce CD-ROM). Podczas inicjalizacji aplikacja odczytuje wszystkich użytkowników z tabeli userMaster i ładuje ich do kontrolki listy, ilustrując sposób, w jaki obiekt CDaoRecodset może sekwencyjnie odczytywać zestaw rekordów. Gdy zostanie wybrana nazwa użytkownika na liście, w oknie dialogowym są wyświetlane jego dane (nazwa, stan itd.). Po wyświetleniu danych użytkownika można je zmienić i zaktualizować, klikając odpowiedni przycisk. Do aktualizacji i usuwania rekordów program korzysta z funkcji Execute() klasy CDaoDatabase. Zwróć uwagę, że programy z tego rozdziału korzystają z demonstracyjnej bazy danych (vc6bib.mdb) zawartej w kartotece Rozdz26\Database. Aby program mógł działać, musisz zarejestrować nazwę źródła danych związaną z tą bazą.
Rozdz.29.
Ten rozdział uczy tworzenia bibliotek DLL w Windows. Są w nim omawiane zarówno zwykłe biblioteki DLL, jak i biblioteki DLL rozszerzeń MFC.
lmageViewer
Ta biblioteka DLL ilustruje sposób implementacji w postaci biblioteki DLL obsługi modelu dokument-widok MFC dla określonego typu pliku. Program definiuje po prostu dokument, widok, ramkę oraz zasoby wymagane dla wzorca dokumentu oraz eksportuje funkcję inicjalizującą, którą może wywołać każda aplikacja potrzebująca obsługi tego typu pliku. Gdy kod dokumentu i widoku umieścisz w bibliotece DLL, to gdy aplikacja będzie potrzebować obsługi plików tego typu, będzie musiała jedynie połączyć się z biblioteką i wywołać jej funkcję inicjalizacyjną. Biblioteka automatycznie zajmie się tworzeniem wzorca dokumentu i dołączeniem go do listy wzorców dokumentów aplikacji.
lmageViewerClient
Ta aplikacja jest klientem biblioteki ImageVie\ver.DLL. Używając tej aplikacji, może otwierać pliki graficzne obsługiwane przez bibliotekę ImageObject. Wzorzec dokumentu użyty do otwierania i wyświetlania plików jest w rzeczywistości zawarty wewnątrz biblioteki ImageViewer.DLL. Ta aplikacja po prostu wywołuje pojedynczą wyeksportowaną funkcję i dzięki temu automatycznie uzyskuje wsparcie dla obsługi plików graficznych.
KeybdHook
Ta biblioteka DLL eksportuje funkcje mające na celu zilustrowanie sposobu instalowania, sterowania i deinstalowania haka Windows monitorującego aktywność klawiatury. Choć ta aplikacja została napisana w celu zaprezentowania haka klawiatury, duża część jej kodu źródłowego odnosi się także do innych haków w Windows.
GlobalDIIObjects
Ta biblioteka DLL ilustruje niełatwe zadanie dzielenia obiektów C++ pomiędzy różne wywołania tej samej biblioteki DLL. O ile dzięki dyrektywie #pragma data_seg dzielenie danych prostych typów jest trywialne, o tyle dzielenie obiektów C++ już tak proste nie jest. Gdy biblioteka DLL zawiera deklarację globalnego obiektu C++, za każdym razem gdy aplikacją klienta ładuje się tę bibliotekę, jest wywoływany konstruktor obiektu. Oczywiście powoduje to problemy, gdy DLL potrzebuje jednego obiektu C++ wspólnego dla wszystkich klientów. Biblioteka GlobalDIIObjects wykorzystuje operator placement ne\v języka C++ tak aby był tworzony tylko jeden obiekt C++, bez względu na ilość klientów podłączonych do tej biblioteki.
GlobalDIIObjectsCIient
Ten program jest testową aplikacją dla biblioteki GlobalDIIObjects. Aplikacja po prostu łączy się z biblioteką DLL i żąda dostępu do tworzonego przez tę bibliotekę globalnego obiektu C++ podczas podłączania pierwszego klienta. Ta oparta na oknie dialogowym aplikacja posiada przycisk, który po kliknięciu nim powoduje wyświetlenie okna komunikatu z informacjami o globalnym obiekcie C++ w bibliotece DLL (łącznie z informacją o adresie w pamięci). Gdy uruchomisz kilka egzemplarzy programu, możesz przekonać się, że jest tworzony tylko jeden egzemplarz globalnego obiektu, który jest niszczony dopiero wtedy, gdy od biblioteki odłączy się ostatni klient.
Rozdz.31. MFCControl
Rozdział 31 omawia podstawowe koncepcje ActiveX, różne rodzaje komponentów ActiveX oraz tworzenie kontrolek ActiveX z użyciem klas MFC. Podfolder folder RozdzSI zawiera skompilowaną kontrolkę ActiveX (OCX) oraz pliki jej kodu źródłowego.
Program demonstracyjny MFCControl jest projektem prostej kontrolki ActiveX. Ta kontrolka wyświetla proste informacje i zawiera implementację właściwości, metod i zdarzeń, a także kod jak najbardziej efektywnie odrysowujący jej obszar. Ta kontrolka ActiveX wykorzystuje funkcje MFC do tworzenia i implementacji interfejsów udostępnianych aplikacjom klientów.
Rozdz.32. MFCServer
Rozdział 32. rozszerza widzę zdobytą w rozdziale 31. o tworzeniu prostych kontrolek Ac-tiveX, wykorzystując ją do użycia MFC w celu stworzenia serwera automatyzacji MFC. Tworzona w tym rozdziale biblioteka DLL działająca in-process stanowi prosty serwer automatyzacji dokonujący wpisów do pliku dziennika. Podfolder folder Rozdz32 zawiera skompilowaną bibliotekę serwera automatyzacji MFC oraz pliki jej kodu źródłowego.
Program demonstracyjny MFCServer stanowi prosty serwer automatyzacji ActiveX, działający w przestrzeni adresowej procesu wywołującego. Ten serwer dokonuje na żądanie klienta wpisów do pliku dziennika. Udostępnione innym aplikacjom interfejsy serwera zostały stworzone z użyciem funkcji MFC.
Rozdz.33.
Ten rozdział omawia bibliotekę ATL (Active Template Library). Dowiadujesz się w nim, jak tworzyć kontrolki ATL i wykorzystywać je w programach C++.
DoublePendulum
Ta kartoteka zawiera projekt prostej kontrolki ATL rysującej w oknie widoku podwójne wahadło. Kontrolka udostępnia dwie metody pozwalające na zmianę koloru oraz promienia wahadła. Kod rysujący wahadło jest zawarty w funkcji OnDraw ().
UseDoublePendulum
Po stworzeniu kontrolki DoublePendulum potrzebujesz osobnej aplikacji, w której możesz ją przetestować. Ten program jest aplikacją SDI, w której za pomocą standardowych funkcji Visual C++ załadowano kontrolkę DoublePendulum.
Rozdz.34.
Ten rozdział dotyczy programowania dla Inernetu. Są w nim omawiane między innymi tematy takie jak FTP i programowanie gniazd.
AutoDialer
Na dołączonej do książki płytce CD-ROM, w kartotece Rozdz34\AutoDialei\ znajduje się program demonstracyjny. Program sprawdza, czy w komputerze użytkownika jest nawiązane połączenie z Internetem. Jeśli nie, program automatycznie wybiera numer dostawcy Internetu. Możesz zbudować projekt AutoDialer.dsw lub po prostu uruchomić plik AutoDialer.exe w Eksploratorze Windows.
Program wykorzystuje funkcje stanowiące część RAS (Remote Access Service). Klasę CAutoDial możesz wykorzystać we własnym programie, kopiując jej plik do kartoteki swoich plików źródłowych i dołączając go do projektu.
FTP
Program FTP przesyła pliki do i z serwerów FTP, a także pobiera zawartości kartotek tych serwerów. Do wyboru działań programu służą trzy pozycje menu. Polecenie Pobierz plik FTP powoduje pobranie pliku z serwera FTP i zapisanie go na lokalnym dysku. Polecenie Wyślij plik FTP powoduje wysłanie pliku z lokalnego dysku na serwer, zaś polecenie Pobierz zawartość kartoteki FTP powoduje pobranie listy zawartości kartoteki serwera.
Ten demonstracyjny program znajduje się na dołączonej do książki płytce CD-ROM, w kartotece Rozdz34\Ftp. Program został zbudowany w oparciu o klasę CFtpConnect. Możesz zbudować projekt Ftp.dsw lub od razu uruchomić program, otwierając plik Ftp.exe.
SendEmail
Na dołączonej do książki płytce CD-ROM, w kartotece Rozdz34\SendEmail, znajdziesz program demonstracyjny. Program wysyła komunikat e-mail używając SMTP. Możesz zbudować projekt SendEmail. dsw lub po prostu uruchomić program, otwierając w Eksploratorze Windows plik SendEmail.exe.
Program nawiązuje połączenie z serwerem poczty poprzez port 25, zarezerwowany dla SMTP. Następnie rozpoczyna się konwersja, w której serwer poczty uzyskuje informacje wystarczające do wysłania poczty e-mail. Konwersację kończy specjalna sekwencja tekstu, po czym gniazdo jest zamykane.
Sockets
Program Sockets może nasłuchiwać połączenia lub może łączyć się z nasłuchującym punktem końcowym. Aby uruchomić program, możesz zbudować projekt Sockets. dsw lub po prostu w Eksploratorze Windows otworzyć plik Sockets.exe.
Ten program demonstracyjny znajduje się na dołączonej do książki płytce CD-ROM, w kartotece Rozdz34\Sockets. Program jest zbudowany w oparciu o klasę csocket i korzysta z jednego z dwóch wątków, w zależności od wybranej opcji menu.
Rozdz.35.
Ten rozdział dotyczy klasy CHtmlview. Ta klasa pozwala na szybkie tworzenie aplikacji mogących przeglądać sieć WWW.
SimpleBrowser
Program SimpleBrowser implementuje sześć z nawigacyjnych funkcji klasy CHtmlYiew. Tymi funkcjami sąGoBackO, GoForwardO, GoHome (), Navigate2(), stopo oraz GoSearch(} .
Ten demonstracyjny program znajdziesz na dołączonej do książki płytce CD-ROM, w kartotece Rozdz35\SimpleBrowser. Aplikacja została zbudowana w oparciu o klasę CHtmlView i posiada tylko kilka dodatkowych elementów. Możesz otworzyć plik projektu SimpleBrowser. dsw lub po prostu uruchomić program, otwierając w Eksploratorze Windows plik SimpleBrowser.exe.
Multibrowser
Program MultiBrowser nie oferuje tych samych funkcji nawigacyjnych co program SimpleBrowser, gdyż służy innemu, specjalnemu celowi. Służy mianowicie przeglądaniu wyników wyszukiwania zwróconych przez sieciowy engine wyszukiwania.
Ten demonstracyjny program znajdziesz na dołączonej do książki płytce CD-ROM, w kartotece Rozdz35\MultiBrowser. Tak jak w przypadku programu SimpleBrowser, także i ta aplikacja została zbudowana w oparciu o klasę CHtmlView i posiada tylko kilka dodatkowych elementów. Możesz otworzyć plik projektu MultiBrowser.dsw lub po prostu uruchomić program, otwierając w Eksploratorze Windows plik MultiBrowser. exe.
UseBrowser
Ten przykładowy program znajduje się na dołączonej do książki płytce CD-ROM, w kartotece Rozdz35\UseBro\vser.
Rozdz.37.
Makra są przechowywane w zwykłych plikach tekstowych z rozszerzeniem .DSM. Domyślnym miejscem, w którym Yisual Studio szuka plików makr, jest kartoteka devstudio\ common\MSDev98\Macros\. W tej kartotece mogą być już trzy pliki i powinieneś przechowywać w niej także własne pliki makr, włącznie z plikiem skopiowanym z dołączonej do książki płytki CD-ROM. W ten sposób będziesz miał do nich łatwiejszy dostęp.
Trzy pliki, które już mogą znajdować się w tej kartotece, to TemporaryQuickMacro.DSM, MyMacros.DSM oraz Sample.DSM. Pliki TeniporaryQuickMacro.DSM\ MyMacros.DSM są tworzone przez Yisual Studio dopiero w momencie, gdy zaczynasz tworzyć własne makra. Pliku TemporaryQuickMakro.DSM nie powinieneś ruszać, gdyż właśnie w nim Yisual Studio przechowuje kod bieżącego szybkiego makra. Plik MyMacros.DSM jest domyślnym plikiem dla nowych makr. Plik Sample. DSM zawiera kilka przykładowych makr dostarczonych przez Microsoft.
Rozdz.38.
Ten rozdział zawiera omówienie zaawansowanych tematów związanych z tworzeniem własnych AppWizardów dla różnych typów projektów.
SDIAutomationWiz
Ten kreator jest własnym AppWizardem ilustrującym, w jaki sposób można ustawić domyślne opcje dla nowych projektów. W tym konkretnym przykładzie kreator ustawia typ aplikacji na SDI i włącza automatyzację. Takie kreatory doskonale sprawdzają się w sytuacjach, gdy musisz tworzyć wiele projektów z takimi samymi ustawieniami. Używając kodu źródłowego tej aplikacji jako punktu wyjścia, możesz łatwo dostosować go do ustawiania własnych domyślnych opcji. Aby użyć kreatora bez budowania go, musisz skopiować plik SDIAutomationWiz.AWXdo folderu szablonów Yisual Studia. Domyślnie tym folderem jest folder C:\Program Files\Microsoft Yisual Studio\Common\MSDev98\ Temp lat e.
AboutWiz
Ten kreator jest już dużo bardziej zaawansowany i ilustruje sposób tworzenia i wyświetlania własnych okien dialogowych kreatora, pobieranie i ustawianie zmiennych definiowanych przez użytkownika oraz sterowanie sekwencją wyświetlania okien dialogowych AppWizarda. W rezultacie otrzymujemy AppWizarda, który automatycznie dodaje okno dialogowe O programie do każdego nowego projektu tworzonego z jego pomocą. Okno dialogowe O programie zawiera informacje kontaktowe oraz przycisk polecenia powodujący nawiązane połączenia z Internetem i otwarcie wskazanej strony WWW. Ten AppWizard oprócz tego zapisuje wprowadzone przez programistę informacje, dzięki czemu nie trzeba wpisywać ich ponownie przy tworzeniu kolejnych projektów. Aby użyć kreatora bez budowania go, musisz skopiować plik AboutWiz.AWX do folderu szablonów Visual Studia. Domyślnie tym folderem jest folder C:\Program Files\Microsoft Yisual Studio\Common\MSDev98\Template.
Narzędzia programistyczne
Folder ProgrammingTools na płytce CD-ROM zawiera programy, które pomogą Ci gdy zapragniesz rozszerzyć możliwości MFC. Kilka z tych programów jest rozbudowanymi aplikacjami opartymi na bibliotekach programistycznych. Niektóre z nich są wersjami demonstracyjnymi komercyjnych narzędzi. Z kolei biblioteki ułatwią Ci zadanie uzupełniania programu o dodatkowe możliwości.
Na płytce znajdują się programy trzech firm: Stingray Software, Dundas Software oraz Lead Technologies. Programy opisywane w tej sekcji zostały podzielone właśnie według firm.
Większość z programów na płytce jest samorozpakowywującymi się aplikacjami, automatycznie instalującymi się na dysku. Jeśli plik posiada rozszerzenie .erę, uruchom go i postępuj zgodnie z instrukcjami programu instalacyjnego. Jeśli plik ma rozszerzenie .zip, musisz użyć programu w rodzaju WinZip lub PKUNZIP, aby przeprowadzić dekompresję pliku. Instrukcje dotyczące instalowania programów skompresowanych w plikach .zip znajdziesz już po rozkompresowaniu pliku.
Stingray Software
Stingray Software specjalizuje się w rozszerzeniach MFC. Te narzędzia pozwolą na uczynienie z Twoich programów najlepszych produktów na rynku.
Objective Grid Samples
Nazwa pliku: OG60DB.exe
Ten plik ilustruje różne elementy obiektu siatki. To narzędzie udostępnia aplikacji MFC doskonałą kontrolkę siatki. Dzięki tej kontrolce możesz tworzyć aplikacje w rodzaju arkusza kalkulacyjnego i inne, wymagające użycia siatki.
Objective Grid Demobrowser
Nazwa pliku: og60dbx.exe
To narzędzie przedstawia siatkę związaną z DAO, z dynamicznym podziałem okna i licznikiem rekordów na pasku stanu. Dostęp do danych odbywa się przez klasy MFC DAO.
Objective Grid Designer
Nazwa pliku: OGDesign.exe
Jest to program do projektowania siatek, dostarczany wraz z Objective Grid 6.0. To narzędzie pozwala na określenie wyglądu siatki bez konieczności tworzenia aplikacji. Możesz załadować do niego przykładowe pliki .OGL.
Objective Grid CCE Evaluation Version
Nazwa pliku: ogcceeval.exe
Próbna wersja Objective Grid CCE. Ta zaawansowana wersja kontrolki Objective Grid pozwala na eksperymentowanie z tworzeniem własnych programów korzystających z siatek.
Objective Toolkit
Nazwa pliku: OT_Demo.exe
W końcu masz możliwość ujrzeć wszystkie elementy pakietu Objective Grid w jednej, łatwej w użyciu przeglądarce. Zdziwisz się, jak wiele możliwości tkwi w pozornie mało skomplikowanym drzewku opcji. To narzędzie zawiera różne rozszerzenia MFC, takie jak rozbudowane kontrolki widoku drzewa czy rozbudowane paski narzędzi.
Objective Toolkit/X
Nazwa pliku: OTX_Eval.exe
Objective Toolkit/X, czyli OT/X, sprawia, że narzędzie Objective Toolkit Pro staje się dostępne jako kontrolka ActiveX. Dzięki możliwościom OT Pro i elastyczności ActiveX, OT/X pozwala na tworzenie unikalnych aplikacji o interfejs użytkownika Win32, lecz łatwych w obsłudze jak Visual Basic.
Objective Toolkit Demos
Nazwa pliku: otpdemos.exe
Ten plik zawiera dodatkowe elementy, które możesz wykorzystać w Objective Toolkit. Uruchamiając te demonstracyjne narzędzia, zobaczysz, jak wydajny i elastyczny może być pakiet Objective Toolkit.
Objective Chart Demobrowser
Nazwa pliku: OC_Demo.exe
Jest to demonstracja nowej wersji kontrolki Objective Chart. Pokazuje, w jaki sposób można korzystać z biblioteki Objective Chart. Dzięki niej możesz dodawać do programów MFC wykresy i grafy.
Diagram Demobrowser
Nazwa pliku: odlOdemo.zip
Ten plik zawiera programy Circuit, Logger oraz ich dokumentację. Te programy pokazują, w jaki sposób można używać kontrolek diagramów. Wszystkie programy demonstracyjne zawieraj ą pełny plik źródłowy.
Objective Edit Demobrowser
Nazwa pliku: oelOdemo.exe
Ten plik zawiera Objective Edit Demobrowser, narzędzie pozwalające na przeprowadzanie edycji w bardziej uniwersalny i wygodny sposób niż w przypadku pól edycji dostępnych w MFC.
Dundas Software
Dundas Software specjalizuje się w kontrolkach siatek i narzędziach do tworzenia kreatorów. Ich biblioteki i narzędzia są przeznaczone do użycia w programach MFC.
Ultimate Grid 97 for MFC Demo
Nazwa pliku: ug97demo.exe
Ten demonstracyjny program ilustruje większość z głównych funkcji siatki. Zawartych jest w nim ponad 30 demonstracji, z których każda obejmuje oddzielną grupę funkcji. Dostępne funkcje obejmują style tekstu, rodzaje komórek, przewijanie, podświetlanie, zamianę kolumn, grafikę, ruch, wyszukiwanie, sortowanie, blokowanie wierszy i kolumn, styl Excela, styl Accessa, wykresy, dane pobierane w czasie rzeczywistym, kalendarz, podpowiedzi.
Ultimate Wizard Factory
Nazwa pliku: uwfdemo.exe
Ten program demonstruje użycie kreatorów, jakie może stworzyć za pomocą Ultimate Wizard Factory. Program uruchamiający kreatora w celu stworzenia plików szkieletu klasy może być bardzo przydatny, szczególnie gdy większość Twoich klientów to programiści C++. Chyba że znajdziesz własne zastosowanie dla tego narzędzia.
Compuware NuMega Labs
NuMega Labs jest wiodącym dostawcą narzędzi do inteligentnego debuggowania programów Windows. Do jego produktów należą między innymi BoundsChcker, SoftlCE, CodeReview, SmartCheck oraz TrueTime.
BoundsChecker
Nazwa pliku: setup.exe
NuMega BoundsChecker, wersja 5.03, jest wiodącym narzędziem do wykrywania błędów programu w czasie jego działania, przeznaczonym dla Yisual C++. BoundsChecker automatyzuje debuggowanie w Yisual C++, zwiększając produktywność i efektywność programisty. Jego przejrzysta, szczegółowa analiza błędów unikalnych dla C++, jest dla programisty bardzo cenna. BoundsChecker debugguje błędy pamięci statycznej, pamięci sterty oraz stosu, a także wycieki pamięci i zasobów. Oprócz tego sprawdza w czasie działania ponad 5000 interfejsów API, łącznie z najnowszymi API Windows, takimi jak API ODBC, ActiveX, COM i Internet.

Wyszukiwarka

Podobne podstrony:
C Vademecum profesjonalisty ksiazka Podziękowania, O autorach
C Vademecum profesjonalisty ksiazka Skrócony spis treści
C Vademecum profesjonalisty ksiazka Początek
C Vademecum profesjonalisty ksiazka Przedmowa
C Vademecum profesjonalisty ksiazka Spis treści
Flash MX Vademecum profesjonalisty flmxvp
PHP Zaawansowane programowanie Vademecum profesjonalisty
Java Uslugi WWW Vademecum profesjonalisty jtswww
C Programowanie zorientowane obiektowo Vademecum profesjonalisty

więcej podobnych podstron