Visual_C_6_Vademecum_profesjonalisty_vcpp6v.pdf

(461 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
Visual C++ 6.
Vademecum profesjonalisty
Autorzy: Richard C. Leinecker i Tom Archer
T³umaczenie: Marcin Pancewicz
ISBN: 83-7197-260-1
Tytu³ orygina³u:
Visual C++ Bible
Format: B5, stron: 1208
oprawa twarda
Zawiera CD-ROM
Jeœli potrafi to Visual C++, Ty tak¿e osi¹gniesz zamierzony efekt. Szybko opanujesz
zdolnoœci potrzebne do tworzenia zaawansowanych, komercyjnych aplikacji dla
Windows i sieci WWW -- poznasz wszystko, co jest do tego potrzebne, od podstaw
tworzenia menu i obs³ugi myszy, przez technologiê ODBC, DAO a¿ do w³asnych
skryptów. Korzystaj¹c z ksi¹¿ki zawodowych programistów Ricka Leineckera i Toma
Archera -- „Visual C++ 6. Vademecum profesjoanlisty”, szybko zdobêdziesz
najœwie¿sze informacje potrzebne do utrzymania siê w czo³ówce najlepszych
programistów.
Proponujemy Ci doskona³¹ lekturê, która pomo¿e w:
opanowaniu ogólnych i szczegó³owych technik programowania dla Windows --
od menu do obs³ugi wyj¹tków i operacji wejœcia-wyjœcia;
zwiêkszeniu mo¿liwoœci obs³ugi baz danych za pomoc¹ ODBC, klasy baz danych
MFC, DAO, ADO oraz OLE DB;
rozszerzeniu aplikacji o dynamicznie ³¹czone biblioteki DLL oraz biblioteki
innych programistów;
lepszym wykorzystaniu MFC do tworzenia kontrolek ActiveX lub ATL do
tworzenia kontrolek o bardzo ma³ej objêtoœci kodu;
pisaniu dynamicznych aplikacji internetowych, aplikacji korzystaj¹cych z klasy
CHtmlView oraz aplikacji DHTML;
poznaniu zaawansowanych mo¿liwoœci pakietu Visual Studio, w³¹cznie
z makrami VBScript oraz kreatorami AppWizard tworzonymi przez u¿ytkownika.
Na do³¹czonej do ksi¹¿ki p³ytce CD-ROM znajdziesz rozbudowane narzêdzia
programistyczne oraz programy demonstracyjne, miêdzy innymi:
Objective Grid, Objective Grid Lite, Objective Toolkit, Objective Chart, Objective
Edit, Objective plug-in oraz Objective Diagram stworzone przez Stingray
Software
Ultimate Grid oraz Ultimate Wizard Factory stworzone przez Dundas Software
BoundsChecker firmy Compuware NuMega Lab
A tak¿e pe³ne programy zademonstrowane w ksi¹¿ce!
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
"
"
"
"
"
"
"
"
"
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Część I Podstawy Visual C++
Rozdział 1. Zaczynamy ............................................................................................................... 33
Co nowego pojawiło się w Visual C++ 6.0 ..............................................................................34
Program HelloWorld1...............................................................................................................35
Program HelloWorld2...............................................................................................................38
Kontrolka ATL HelloWorld3....................................................................................................40
Podsumowanie ..........................................................................................................................43
Rozdział 2. Korzystanie z zalet zintegrowanego środowiska programisty ............................ 45
Korzystanie ze zintegrowanego środowiska .............................................................................45
Tworzenie pierwszego projektu ................................................................................................47
Dostosowywanie IDE ...............................................................................................................50
Przeglądanie aktualnych skrótów .......................................................................................50
Dodawanie, modyfikowanie i usuwanie skrótów ...............................................................51
Korzystanie z pasków narzędzi.................................................................................................53
Wyświetlanie i ukrywanie pasków narzędzi.......................................................................53
Dostosowywanie pasków narzędzi .....................................................................................54
Podsumowanie ..........................................................................................................................54
Rozdział 3. Debuggowanie: gdy aplikacja nie działa ............................................................... 55
Co ka dy debugger posiadać powinien.....................................................................................56
Debugger zintegrowany z Visual Studio ..................................................................................57
Przygotowanie aplikacji do debuggowania ........................................................................57
Korzystanie z debuggera podczas działania aplikacji ........................................................59
Okna debuggowania ...........................................................................................................60
Korzystanie z punktów wstrzymania i wykonywanie programu krok po kroku ................64
Korzystanie z etykietek danych i okna szybkiego podglądu ..............................................67
U ycie okien wątków i wyjątków w trakcie debuggowania ..............................................67
Proste techniki debuggowania ..................................................................................................69
Korzystanie z okien komunikatów w celu przyspieszenia debuggowania .........................69
Wyjście debuggera..............................................................................................................69
Korzystanie z asercji...........................................................................................................70
Zrzut obiektów....................................................................................................................71
Klasa CMemoryState i wykrywanie wycieków pamięci....................................................71
Komunikaty śledzenia MFC ...............................................................................................72
Zdalne debuggowanie ...............................................................................................................72
2
Visual C++6. Vademecum profesjonalisty
Debuggowanie „just-in-time” ...................................................................................................74
Debuggowanie typu „edit and continue” ............................................................................74
Debuggowanie usług Windows NT....................................................................................75
Podsumowanie ..........................................................................................................................76
Rozdział 4. Poprawianie wydajności aplikacji ......................................................................... 77
Optymalizowanie kodu .............................................................................................................78
Wprowadzenie do profilowania ................................................................................................80
Podstawy profilowania aplikacji.........................................................................................82
Działanie Profilera ..............................................................................................................82
Rodzaje profilowania..........................................................................................................83
Zaawansowane ustawienia Profilera...................................................................................84
Włączanie profilowania w Visual C++ 6.0...............................................................................84
Sterowanie profilowaniem z poziomu Visual Studia .........................................................85
Wybór funkcji do profilowania ..........................................................................................86
Działanie programu PREP..................................................................................................86
Profilowanie czasu wykonywania funkcji ..........................................................................89
Profilowanie pokrycia funkcji ............................................................................................89
Opcje profilowania linii......................................................................................................90
Profilowanie pokrycia linii .................................................................................................91
Łączenie wyników działania Profilera................................................................................91
Eksportowanie danych z Profilera ......................................................................................92
Analizowanie danych Profilera...........................................................................................92
Zawartość globalnych rekordów informacyjnych ..............................................................93
Lokalne rekordy informacyjne ...........................................................................................94
Analizowanie statyki profilowania .....................................................................................95
Przetwarzanie wyników profilera w Excelu .......................................................................96
Profilowanie bibliotek łączonych dynamicznie..................................................................96
Profilowanie komponentów ActiveX lub kontrolek ActiveX ............................................96
Profilowanie kodu typu inline ............................................................................................98
Profilowanie aplikacji wielowątkowych.............................................................................98
Profilowanie wydajności aplikacji......................................................................................99
U ycie programu CAP do wyeliminowania powtórzonych wywołań......................................99
Profilowanie usług Windows NT .....................................................................................101
Podsumowanie ........................................................................................................................102
Rozdział 5. Inne narzędzia........................................................................................................ 103
Spy++......................................................................................................................................103
Dostosowywanie menu Tools .................................................................................................107
Inne operacje w menu Tools ...................................................................................................108
Przeglądanie klas.....................................................................................................................109
Przeglądanie kodu źródłowego MFC......................................................................................111
Podsumowanie ........................................................................................................................112
Część II Podstawy programowania Windows
Rozdział 6. Przegląd programowania w MFC........................................................................ 115
Co to jest MFC? ......................................................................................................................116
Filozofia MFC.........................................................................................................................117
Zalety płynące z wykorzystania MFC ....................................................................................117
Właściwości, właściwości, właściwości...........................................................................119
Nadająca się do rozbudowy architektura ..........................................................................119
Spis treści
3
Hierarchia klas MFC...............................................................................................................120
Usługi plików....................................................................................................................120
Okna..................................................................................................................................120
Grafika ..............................................................................................................................124
Obsługa baz danych..........................................................................................................125
Nie u ywasz MFC?.................................................................................................................125
Podsumowanie ........................................................................................................................126
Rozdział 7. Menu ....................................................................................................................... 127
Tworzenie i edycja menu ........................................................................................................128
Tworzenie menu ...............................................................................................................129
Komunikaty menu w MFC ...............................................................................................131
Klawisze akceleratorów ..........................................................................................................132
Polecenia wprowadzane poprzez klawiaturę ....................................................................133
Definiowanie klawiszy akceleratorów..............................................................................134
Wybór odpowiednich klawiszy akceleratorów.................................................................135
Korzystanie z kilku tabel akceleratorów...........................................................................138
Dynamicznie zmieniane menu ................................................................................................140
Zakresy poleceń menu ......................................................................................................140
Zmiana menu w czasie wykonania ...................................................................................141
Zmiana istniejącego menu ................................................................................................142
Stałe i tymczasowe mapy uchwytów ................................................................................145
Menu kontekstowe ..................................................................................................................147
Podsumowanie ........................................................................................................................149
Rozdział 8. Mysz i klawiatura .................................................................................................. 151
Komunikaty wejściowe i stan systemu ...................................................................................152
Obsługa myszy........................................................................................................................152
Tworzenie funkcji obsługi komunikatów myszy..............................................................153
Konwersja pomiędzy współrzędnymi ekranowymi a współrzędnymi okna ....................155
Tworzenie programu MFC obsługującego zdarzenia myszy..................................................156
Zdarzenia myszy nie związane z obszarem roboczym .....................................................161
Zmiana wyglądu wskaźnika myszy ..................................................................................162
Demonstracyjny program zmieniający kształt wskaźnika myszy...........................................163
Przechwytywanie wskaźnika myszy.................................................................................166
Ograniczanie ruchów myszy.............................................................................................167
Odczyt danych z klawiatury....................................................................................................168
Klawiatura fizyczna ..........................................................................................................168
Odzwierciedlanie ogniska wprowadzania ........................................................................172
Podsumowanie ........................................................................................................................178
Rozdział 9. Grafika.................................................................................................................... 179
Wprowadzenie do interfejsu urządzeń graficznych ................................................................180
Rodzaje grafiki..................................................................................................................180
Rodzaje urządzeń GDI......................................................................................................182
Kontekst urządzenia................................................................................................................183
Atrybuty rysunkowe kontekstu urządzenia ......................................................................184
Komunikat WM_PAINT ..................................................................................................187
Współrzędne rysowania....................................................................................................188
Generowanie komunikatu WM_PAINT...........................................................................188
Rysowanie poza komunikatem WM_PAINT ...................................................................190
4
Visual C++6. Vademecum profesjonalisty
Manipulowanie tekstem ..........................................................................................................191
Obsługa koloru przez GDI................................................................................................191
Kolor tekstu ......................................................................................................................193
Wyrównywanie tekstu ......................................................................................................194
Justowanie tekstu ..............................................................................................................195
Czcionki ..................................................................................................................................196
Czym jest czcionka? .........................................................................................................196
Wybieranie obiektów w kontekście urządzenia ...............................................................196
Wybieranie czcionek magazynowych ..............................................................................197
Wybieranie czcionek niemagazynowych .........................................................................197
Pióra i pędzle...........................................................................................................................201
Pióra..................................................................................................................................202
Pędzle................................................................................................................................204
Tryby odwzorowania ..............................................................................................................206
Operacje rastrowe ...................................................................................................................207
Funkcje rysujące tekst.......................................................................................................209
Obliczanie współrzędnych tekstu .....................................................................................210
Regiony obcinania...................................................................................................................215
Podsumowanie ........................................................................................................................216
Rozdział 10. Bitmapy, palety, DIB-y oraz podwójne buforowanie......................................... 217
Pamięć bitmapy i pamięć obrazu ............................................................................................218
Tworzenie obiektów CBitmap ................................................................................................220
Ładowanie i ustawianie zawartości bitmapy ..........................................................................222
Rysowanie obiektów CBitmap na ekranie ..............................................................................223
Operacje rastrowe ...................................................................................................................226
Program BlitDemo ..................................................................................................................229
Palety i kolor ...........................................................................................................................234
Palety logiczne..................................................................................................................237
Zdarzenia dotyczące palety...............................................................................................239
Funkcja SetSystemPaletteUse()........................................................................................241
Bitmapy niezale ne od urządzenia..........................................................................................241
Anatomia pliku DIB .........................................................................................................241
Klasa CDib........................................................................................................................243
Program demonstracyjny ShowDIB .................................................................................249
Podwójne buforowanie ...........................................................................................................252
Podsumowanie ........................................................................................................................254
Rozdział 11. Obsługa wyjątków MFC ....................................................................................... 255
Obsługa wyjątków strukturalnych ..........................................................................................256
Składnia obsługi wyjątków .....................................................................................................256
Zgłaszanie wyjątków ........................................................................................................256
Wychwytywanie wyjątków ..............................................................................................257
Porównanie technik obsługi błędów .......................................................................................258
Posługiwanie się kodami błędów......................................................................................258
Obsługa błędów we właściwym kontekście .....................................................................259
Poprawa czytelności kodu ................................................................................................261
Zgłaszanie wyjątków przez konstruktory .........................................................................262
Klasa CException....................................................................................................................263
Tworzenie i usuwanie obiektów CException ...................................................................263
Pobieranie od obiektu CException informacji o błędzie ..................................................264
Wychwytywanie wyjątków kilku typów ..........................................................................265
Zgłoś jeśli naruszono regulamin