okladka
Dzięki tej książce:
  • Nauczysz się użytkować środowisko Visual C++, aby szybko i sprawnie tworzyć własne aplikacje
  • Opanujesz metody użytkowania wszystkich obiektów kontrolnych okien
  • Będziesz pracował z klasami bazowymi firmy Microsoft (MFC)
  • Nauczysz się budować swoje własne klasy i moduły
  • Będziesz tworzył i organizował swoje własne obiekty kontrolne typu ActiveX
  • Nauczysz się tworzenia efektywnych aplikacji obsługujących bazy danych, przy użyciu obiektów technologii ActiveX (ADO), OLE DB i ODBC
  • Odkryjesz proste i efektywne metody programowania zorientowanego na Internet.

O Autorach (17)
Wprowadzenie (21)
  • Kompozycja książki (22)
  • Konwencje przyjęte w książce (22)
CZĘŚĆ I (25)
Ogólne spojrzenie (27)
Rozdział 1. Środowisko Visual C++ - Twoja pierwsza samodzielna aplikacja (29)
  • Środowisko programisty Visual C++ (30)
    • Obszar roboczy (30)
    • Obszar komunikacji z użytkownikiem (31)
    • Obszar edycji (31)
    • Paski menu (31)
    • Studio programisty - zmiana wyglądu środowiska (31)
  • Twój pierwszy projekt (32)
    • Tworzenie nowego projektu (33)
    • Kreator aplikacji - tworzenie struktury aplikacji (34)
  • Projektowanie okna aplikacji (36)
  • Dodawanie kodu źródłowego do aplikacji (38)
  • Końcowe dodatki (41)
    • Tworzenie ikony programu (41)
    • Dodawanie przycisków maksymalizacji i minimalizacji (42)
  • Podsumowanie (43)
  • Pytania i odpowiedzi (43)
  • Warsztat (44)
    • Quiz (44)
    • Ćwiczenie (44)
Rozdział 2. Praca z obiektami kontrolnymi (45)
  • Podstawowe obiekty kontrolne Windows (45)
    • Tekst statyczny (46)
    • Pole tekstowe (46)
    • Przycisk polecenia (46)
    • Pole wyboru (47)
    • Przycisk opcji (47)
    • Pole listy (pole kombi) (47)
  • Dodawanie obiektów kontrolnych do okna aplikacji (47)
    • Tworzenie struktury aplikacji, ułożenie obiektów kontrolnych (48)
    • Ustalenie porządku poruszania się zgodnego z klawiszem Tab (50)
  • Dołączanie zmiennych do obiektów kontrolnych (51)
  • Przypisywanie obiektom kontrolnym zasad funkcjonowania (53)
    • Zamykanie aplikacji (56)
    • Wyświetlanie wiadomości użytkownika (56)
    • Czyszczenie pola tekstowego (58)
    • Wyłączanie dostępu i ukrywanie obiektów kontrolnych (58)
  • Podsumowanie (63)
  • Pytania i odpowiedzi (64)
  • Warsztat (64)
    • Quiz (65)
    • Ćwiczenia (65)
Rozdział 3. Integrowanie klawiatury i myszy z programem (67)
  • Zdarzenia wywołane przy pomocy myszy (67)
    • Rysowanie myszą (68)
    • Ulepszanie programu rysunkowego (73)
    • Końcowe dodatki (75)
  • Przechwytywanie zdarzeń związanych z klawiaturą (76)
    • Zmiana kształtu kursora (76)
    • Utrwalenie zmiany kształtu kursora (79)
  • Podsumowanie (83)
  • Pytania i odpowiedzi (84)
  • Warsztat (84)
    • Quiz (85)
    • Ćwiczenia (85)
Rozdział 4. Praca z timerami (87)
  • Timery systemu Windows (87)
  • Umieszczenie zegara w oknie aplikacji (88)
    • Utworzenie projektu i aplikacji (88)
    • Dodawanie identyfikatorów timerów (89)
    • Uruchomienie timera obsługującego zegar (91)
    • Obsłużenie komunikatu związanego z timerem zegara (92)
  • Dodanie drugiego timera do aplikacji (93)
    • Dodanie zmiennych do aplikacji (93)
    • Uruchamianie i zatrzymywanie timera (95)
    • Udostępnianie przycisku Stop (98)
  • Podsumowanie (100)
  • Pytania i odpowiedzi (100)
  • Warsztat (101)
    • Quiz (101)
    • Ćwiczenia (101)
Rozdział 5. Współpraca użytkownika z aplikacją - okna dialogowe (103)
  • Używanie predefiniowanych okien dialogowych Windows (104)
    • Używanie okien informacyjnych (104)
    • Użycie predefiniowanych okien dialogowych (109)
  • Tworzenie własnych okien dialogowych (112)
    • Tworzenie okna dialogowego (112)
    • Użycie niestandardowego okna dialogowego w aplikacji (116)
  • Podsumowanie (120)
  • Pytania i odpowiedzi (121)
  • Warsztat (122)
    • Quiz (123)
    • Ćwiczenia (123)
Rozdział 6. Tworzenie systemu menu dla aplikacji (125)
  • Menu (125)
    • Style menu (126)
    • Menu z systemem klawiszy skrótów (126)
    • Konwencje i standardy systemów menu (127)
  • Projektowanie menu (127)
  • Tworzenie menu (128)
    • Utworzenie aplikacji (128)
    • Dodawanie i projektowanie menu (129)
    • Dołączanie menu do okna aplikacji (131)
    • Programowanie pól menu (132)
  • Tworzenie menu kontekstowego (135)
  • Tworzenie menu z klawiszami przyśpieszającymi (137)
  • Podsumowanie (138)
  • Pytania i odpowiedzi (138)
  • Warsztat (139)
    • Quiz (139)
    • Ćwiczenia (139)
Rozdział 7. Praca z tekstem i czcionkami (141)
  • Odnajdywanie i używanie czcionek (141)
    • Tworzenie listy dostępnych czcionek (142)
    • Użycie czcionki (144)
  • Użycie czcionek w aplikacji (149)
    • Tworzenie podstawowej struktury aplikacji (149)
    • Budowanie listy czcionek (150)
    • Ustawianie przykładowego tekstu (154)
    • Wybieranie czcionki dla obszaru prezentacji (156)
  • Podsumowanie (158)
  • Pytania i odpowiedzi (158)
  • Warsztat (160)
    • Quiz (160)
    • Ćwiczenia (160)
Podsumowanie (161)
CZĘŚĆ II (163)
Ogólne spojrzenie (165)
Rozdział 8. Integrowanie grafiki z programem (167)
  • Interfejs urządzenia graficznego (167)
    • Konteksty urządzeń (168)
    • Tryby mapowania i systemy koordynacji (173)
  • Tworzenie aplikacji graficznej (174)
    • Generowanie podstawowej struktury aplikacji (174)
    • Dodawanie możliwości graficznych (179)
  • Podsumowanie (193)
  • Pytania i odpowiedzi (193)
  • Warsztat (193)
    • Quiz (194)
    • Ćwiczenia (194)
Rozdział 9. Kontrolki ActiveX (195)
  • Czym jest kontrolka ActiveX? (195)
    • Technologia ActiveX i interfejs IDispatch (196)
    • Pojemniki i serwery ActiveX (197)
  • Dodawanie kontrolki ActiveX do projektu (198)
    • Rejestrowanie kontrolki (199)
    • Dodawanie kontrolki do okna dialogowego (201)
  • Użycie kontrolki ActiveX w aplikacji (202)
    • Współdziałanie z kontrolką (203)
    • Reagowanie na zdarzenia generowane przez kontrolkę (208)
  • Podsumowanie (211)
  • Pytania i odpowiedzi (211)
  • Warsztat (212)
    • Quiz (212)
    • Ćwiczenie (212)
Rozdział 10. Aplikacje typu SDI (Single Document Interface) (213)
  • Architektura Dokument/Widok (213)
  • Tworzenie aplikacji SDI (215)
    • Budowanie podstawowej struktury aplikacji (216)
    • Tworzenie klasy linii (216)
    • Implementowanie funkcjonalności dokumentu (219)
    • Prezentacja danych na ekranie (222)
  • Zapisywanie i odczytywanie rysunku (226)
    • Usuwanie bieżącego rysunku (227)
    • Zapisywanie i odczytywanie rysunku (228)
  • Współdziałanie z systemem menu (230)
    • Dodawanie koloru do klasy CLinia (231)
    • Dodawanie koloru do dokumentu (232)
    • Modyfikacja Menu (235)
  • Podsumowanie (239)
  • Pytania i odpowiedzi (239)
  • Warsztat (240)
    • Quiz (241)
    • Ćwiczenie (241)
Rozdział 11. Aplikacje typu MDI (Multiple Document Interface) (243)
  • Czym jest aplikacja MDI? (243)
  • Tworzenie programu graficznego typu MDI (245)
    • Budowanie podstawowej struktury aplikacji (245)
    • Budowanie funkcjonalności graficznej (246)
    • Dodawanie funkcjonalności menu (246)
  • Dodawanie menu kontekstowego (250)
  • Podsumowanie (252)
  • Pytania i odpowiedzi (253)
  • Warsztat (253)
    • Quiz (254)
    • Ćwiczenie (254)
Rozdział 12. Paski narzędzi i stanu (255)
  • Paski narzędzi, stanu i menu (255)
  • Projektowanie paska narzędzi (256)
    • Tworzenie nowego paska narzędzi (258)
    • Dołączanie paska narzędzi do ramki okna aplikacji (259)
    • Kontrolowanie widoczności paska narzędzi (266)
  • Dodawanie pola kombi do paska narzędzi (268)
    • Edytowanie zasobów projektu (268)
    • Tworzenie pola kombi dla paska narzędzi (271)
    • Obsługiwanie zdarzeń generowanych przez obiekt kombi (278)
    • Uaktualnianie obiektu kombi umieszczonego na pasku narzędzi (279)
  • Dodawanie nowego elementu paska stanu (281)
    • Dodawanie nowego obszaru paska stanu (282)
    • Ustawianie tekstu wyświetlanego w obszarze paska stanu (283)
  • Podsumowanie (285)
  • Pytania i odpowiedzi (286)
  • Warsztat (287)
    • Quiz (287)
  • Ćwiczenia (288)
Rozdział 13. Zapisywanie i odczytywanie danych - dostęp do plików (289)
  • Serializacja (289)
    • Klasy CArchive i CFile (289)
    • Funkcja Serialize (290)
    • Czynienie obiektów zdolnymi do serializacji (291)
  • Implementowanie klasy serializowalnej (293)
    • Tworzenie aplikacji serializowanej (294)
    • Tworzenie klasy serializowalnej (297)
    • Budowanie funkcjonalności aplikacji w klasie dokumentu (303)
    • Dodawanie możliwości nawigacyjnych i edycyjnych do klasy widoku (313)
  • Podsumowanie (319)
  • Pytania i odpowiedzi (319)
  • Warsztat (321)
    • Quiz (321)
    • Ćwiczenie (321)
Rozdział 14. Wydobywanie danych z bazy ODBC (323)
  • Dostęp do baz danych i ODBC (323)
    • Interfejs ODBC (Open Database Connector) (324)
    • Klasa CRecordset (325)
  • Tworzenie bazy danych z wykorzystaniem ODBC (330)
    • Przygotowanie bazy danych (330)
    • Tworzenie podstawowej struktury aplikacji (332)
    • Projektowanie głównego formularza (333)
    • Dodawanie nowych rekordów (339)
    • Usuwanie rekordów (341)
  • Podsumowanie (343)
  • Pytania i odpowiedzi (343)
  • Warsztat (344)
    • Quiz (344)
    • Ćwiczenie (344)
Podsumowanie (345)
CZĘŚĆ III (349)
Ogólne spojrzenie (351)
Rozdział 15. Dodawanie i uaktualnianie rekordów w bazie danych poprzez mechanizm ADO (353)
  • Co to jest ADO? (354)
    • Obiekty ADO (354)
    • Korzystanie z kontrolki ActiveX typu ADO (356)
    • Importowanie biblioteki DLL zawierającej elementy ADO (358)
    • Podłączanie się do bazy danych (359)
    • Wykonywanie poleceń i odbieranie danych (360)
    • Poruszanie się po obiekcie typu Recordset (362)
    • Dostęp do wartości pól (362)
    • Uaktualnianie rekordów (365)
    • Dodawanie i usuwanie (366)
    • Zamykanie obiektów Recordset i Connection (366)
  • Budowanie aplikacji bazy danych z wykorzystaniem ADO (367)
    • Tworzenie podstawowej struktury aplikacji (367)
    • Budowanie własnej klasy rekordu (370)
    • Poruszanie się po elementach danych (373)
    • Wypełnianie formularza (376)
    • Zapisywanie zmian (378)
    • Poruszanie się po zbiorze rekordów (379)
    • Dodawanie nowych rekordów (381)
    • Usuwanie rekordów (383)
  • Podsumowanie (384)
  • Pytania i odpowiedzi (384)
  • Warsztat (385)
    • Quiz (385)
    • Ćwiczenie (385)
Rozdział 16. Tworzenie własnych klas i modułów (387)
  • Projektowanie klas (387)
    • Kapsułkowanie (388)
    • Dziedziczenie (388)
    • Typy klas w Visual C++ (389)
  • Tworzenie modułów bibliotecznych (390)
  • Używanie modułów bibliotecznych (391)
    • Tworzenie modułu bibliotecznego (391)
    • Tworzenie aplikacji testowej (400)
    • Uaktualnianie modułu bibliotecznego (404)
  • Podsumowanie (407)
  • Pytania i odpowiedzi (408)
  • Warsztat (408)
    • Quiz (409)
    • Ćwiczenie (409)
Rozdział 17. Udostępnianie własnego oprogramowania innym aplikacjom - tworzenie bibliotek DLL (411)
  • Po co tworzyć biblioteki DLL? (412)
    • Tworzenie i użytkowanie bibliotek DLL (412)
    • Projektowanie bibliotek DLL (415)
  • Tworzenie i użytkowanie bibliotek DLL z rozszerzeniem MFC (415)
    • Tworzenie bibliotek DLL z rozszerzeniem MFC (416)
    • Adaptowanie aplikacji testowej (419)
    • Zmiany w bibliotece DLL (420)
  • Tworzenie i użytkowanie regularnych bibliotek DLL (422)
    • Tworzenie regularnej biblioteki DLL (422)
    • Adaptowanie aplikacji testowej (428)
  • Podsumowanie (431)
  • Pytania i odpowiedzi (432)
  • Warsztat (433)
    • Quiz (433)
    • Ćwiczenia (434)
Rozdział 18. Wielozadaniowość (435)
  • Co to jest wielozadaniowość? (435)
    • Wykonywanie wielu zadań w tym samym czasie (436)
    • Wątki realizowane w czasie wolnym (436)
    • Tworzenie niezależnych wątków (437)
  • Tworzenie ramy aplikacji (446)
    • Projektowanie wirujących okręgów (448)
    • Dodawanie elementów wspierających wirujące koła (454)
    • Dodawanie zadań do funkcji OnIdle (460)
    • Dodawanie niezależnych wątków (465)
  • Podsumowanie (472)
  • Pytania i odpowiedzi (473)
  • Warsztat (475)
    • Quiz (475)
    • Ćwiczenia (476)
Rozdział 19. Budowanie własnych kontrolek ActiveX (477)
  • Czym jest kontrolka ActiveX? (477)
    • Właściwości (478)
    • Metody (479)
    • Zdarzenia (480)
  • Tworzenie kontrolki ActiveX (480)
    • Budowanie powłoki kontrolki (480)
    • Modyfikacja klasy CModArt (482)
    • Dodawanie właściwości (484)
    • Projektowanie i budowa okna właściwości (486)
    • Dodawanie podstawowej funkcjonalności kontrolki (488)
    • Dodawanie metod (490)
    • Dodawanie zdarzeń (492)
    • Testowanie kontrolki (494)
  • Podsumowanie (496)
  • Pytania i odpowiedzi (496)
  • Warsztat (496)
    • Quiz (497)
    • Ćwiczenia (497)
Rozdział 20. Aplikacje internetowe i komunikacja sieciowa (499)
  • W jaki sposób działa komunikacja sieciowa? (500)
    • Gniazda, porty i adresy (501)
    • Tworzenie gniazda (502)
    • Tworzenie połączenia (503)
    • Nadawanie i odbieranie komunikatów (504)
    • Zamykanie połączenia (506)
    • Zdarzenia gniazda (506)
    • Wykrywanie błędów (507)
  • Budowa aplikacji sieciowej (508)
    • Tworzenie powłoki aplikacji (508)
    • Układ okna aplikacji i funkcjonalność startowa (508)
    • Dziedziczenie z klasy CAsyncSocket (512)
    • Połączenie z aplikacją (514)
    • Wysyłanie i odbieranie komunikatów (517)
    • Kończenie połączenia (520)
  • Podsumowanie (521)
  • Pytania i odpowiedzi (522)
  • Warsztat (522)
    • Quiz (523)
    • Ćwiczenia (523)
Rozdział 21. Dodawanie możliwości przeglądania sieci (525)
  • Model obiektu ActiveX Explorer (526)
  • Klasa CHtmlView (527)
    • Poruszanie się po sieci (527)
    • Kontrolowanie przeglądarki (528)
    • Pobieranie stanu przeglądarki (528)
  • Budowa aplikacji przeglądarki sieciowej (528)
    • Tworzenie powłoki aplikacji (528)
    • Dodawanie możliwości nawigacji (529)
  • Podsumowanie (538)
  • Pytania i odpowiedzi (539)
  • Warsztat (539)
    • Quiz (539)
    • Ćwiczenia (540)
Podsumowanie (541)
Dodatki (545)
Dodatek A. Przegląd C++ (547)
  • Pierwsza aplikacja (547)
    • Pozdrowienia.cpp (548)
    • Funkcje i zmienne (552)
    • Wyrażenie if, operatory i polimorfizm (555)
    • Zmienne globalne i lokalne (557)
  • Wskaźniki (559)
    • Referencje (562)
  • Klasy (564)
    • Konstruktory i destruktory (568)
  • Dziedziczenie (574)
  • Podsumowanie (581)
Dodatek B. Odpowiedzi (583)
  • Rozdział 1. (583)
    • Quiz (583)
    • Ćwiczenie (584)
  • Rozdział 2. (584)
    • Quiz (584)
    • Ćwiczenia (585)
  • Rozdział 3. (588)
    • Quiz (588)
    • Ćwiczenia (589)
  • Rozdział 4. (593)
    • Quiz (593)
    • Ćwiczenie (594)
  • Rozdział 5. (595)
    • Quiz (595)
    • Ćwiczenia (596)
  • Rozdział 6. (598)
    • Quiz (598)
    • Ćwiczenia (599)
  • Rozdział 7. (600)
    • Quiz (600)
    • Ćwiczenia (600)
  • Rozdział 8. (603)
    • Quiz (603)
    • Ćwiczenia (604)
  • Rozdział 9. (606)
    • Quiz (606)
    • Ćwiczenie (606)
  • Rozdział 10. (607)
    • Quiz (607)
    • Ćwiczenie (608)
  • Rozdział 11. (613)
    • Quiz (613)
    • Ćwiczenie (614)
  • Rozdział 12. (616)
    • Quiz (616)
    • Ćwiczenia (617)
  • Rozdział 13. (618)
    • Quiz (618) Ćwiczenie (619)
    • Rozdział 14. (622)
    • Quiz (622)
    Ćwiczenie (623)
  • Rozdział 15. (625)
    • Quiz (625)
    • Ćwiczenie (626)
  • Rozdział 16. (627)
    • Quiz (627)
    • Ćwiczenie (627)
  • Rozdział 17. (628)
    • Quiz (628)
    • Ćwiczenia (629)
  • Rozdział 18. (630)
    • Quiz (630)
    • Ćwiczenia (631)
  • Rozdział 19. (633)
    • Quiz (633)
    • Ćwiczenia (634)
  • Rozdział 20. (635)
    • Quiz (635)
    • Ćwiczenia (635)
  • Rozdział 21. (637)
    • Quiz (637)
    • Ćwiczenia (637)
Dodatek C. Podgląd wydruku i drukowanie (641)
  • Korzystanie z wbudowanego wsparcia (641)
    • Korzystanie z wbudowanego wsparcia dla drukowania (641)
    • Przesłanianie funkcji OnPrint() (645)
    • Korzystanie z kontekstu urządzenia drukarki (647)
    • Utrzymywanie współczynnika proporcjonalności (648)
  • Numerowanie i orientacja stron (651)
    • Ustawianie strony początkowej i końcowej (651)
    • Korzystanie z okna dialogowego drukowania (655)
    • Pozioma i pionowa orientacja papieru (658)
    • Dodawanie obiektów GDI do funkcji OnBeginPrinting() (658)
    • Modyfikowanie tworzonego kontekstu urządzenia (660)
    • Przerywanie procesu drukowania (661)
  • Drukowanie bez korzystania z wbudowanego wsparcia wydruku (661)
    • Bezpośrednie przywoływanie okna dialogowego drukowania (661)
    • Korzystanie z funkcji StartDoc() i EndDoc() (663)
    • Korzystanie z funkcji StartPage() i EndPage() (664)
Dodatek D. Obsługa wyjątków (665)
  • Stosowanie wyjątków (665)
    • Wykonywanie programu i wyłapywanie błędów (665)
    • Rzucanie wyjątków (670)
    • Usuwanie wyjątków (671)
  • Typy wyjątków MFC (671)
    • Korzystanie z klasy podstawowej CException (672)
    • Stosowanie wyjątku pamięci (673)
    • Stosowanie wyjątków zasobów (673)
    • Stosowanie wyjątków plików i archiwów (674)
    • Stosowanie wyjątków baz danych (676)
    • Stosowanie wyjątków OLE (677)
    • Stosowanie wyjątków niestandardowych (678)
    • Stosowanie wyjątków użytkownika (678)
    • Generowanie własnych klas wyjątków (678)
Dodatek E. Korzystanie z debuggera i profilera (681)
  • Tworzenie informacji w trakcie procesu wykrywania błędów (681)
    • Stosowanie trybów Debug i Release (681)
    • Ustawianie opcji i poziomów wykrywania błędów (683)
    • Tworzenie i korzystanie z informacji przeglądania (685)
    • Zdalny debugging oraz wykrywanie błędów w trakcie normalnej pracy programu (687)
  • Tracing i Single Stepping (689)
    • Stosowanie makropolecenia TRACE (689)
    • Stosowanie makroinstrukcji ASSERT i VERIFY (691)
    • Punkty przerwań i praca krokowa (693)
    • Edytuj i kontynuuj (696)
    • Podglądanie zmiennych programu (696)
    • Pozostałe okna debuggera (697)
  • Dodatkowe narzędzia debuggera (698)
    • Korzystanie z programu Spy++ (698)
    • Przeglądarka procesów (700)
    • Przeglądarka obiektów OLE/COM (701)
    • Narzędzie śledzące MFC (701)
Dodatek F. Korzystanie z klas MFC (703)
  • Klasy kolekcji (703)
    • Stosowanie klas tablic (704)
    • Stosowanie klas list (706)
    • Stosowanie klas map (708)
    • Tworzenie własnych klas kolekcji (710)
  • Korzystanie z klas obsługujących współrzędne (714)
    • Stosowanie klasy CPoint (714)
    • Stosowanie klasy CRect (716)
    • Stosowanie klasy CSize (721)
  • Klasy zarządzające czasem (722)
    • Stosowanie klasy COleDateTime (723)
    • Stosowanie klasy COleDateTimeSpan (726)
  • Korzystanie z klas łańcuchów (728)
    • Stosowanie klasy CString (728)
    • Manipulowanie łańcuchami (731)
    • Szukanie łańcuchów (731)
    • Formatowanie tekstu przeznaczonego do wyświetlenia (732)
Skorowidz (735)