Dane szczegółowe książki
Poznaj Visual C++ 6 / Bates, Jon; Tompkins, Tim; Dzieniszewski, Sławomir; Korbecki, Marek
Tytuł
Poznaj Visual C++ 6
Tytuł oryginału
Using Visual C++ 6
Serie wydawnicze
Wydawnictwo
Warszawa: "Mikom", 1999
ISBN
8371581904
Hasła przedmiotowe
Spis treści
pokaż spis treści
O autorach .................................................12
Wprowadzenie...........................................15
Czym jest Visual C++ 6.0 i dlaczego
warto go używać?.................................. 15
Cóż nowego jest w tej książce?............. 15
Czy to jest odpowiednia książka? ......... 16
Konwencje zastosowane w książce....... 16
Część I. Tworzenie aplikacji Visual C++ 17
Rozdział 1. Projektowanie i tworzenie
programu w Visual C++..............19
Uruchomienie Visual C++ .................... 19
Tworzenie nowego projektu.................. 20
Wybór rodzaju projektu ....................... .21
Nadawanie nazwy projektowi i wybór
lokalizacj i ............................................. . 21
Używanie AppWizard........................... 21
Korzystanie z podstawowych opcji
AppWizard............................................ 22
Generowanie i uruchamianie aplikacji.. 24
Wybór konfiguracji procesu
generowania pliku................................ .24
Przeprowadzanie procesów kompilacji
i łączenia ............................................... 24
Uruchomienie aplikacji......................... 25
Zgodność z interfejsem Windows......... 26
Modyfikacja interfejsu aplikacji ........... 26
Umieszczanie przycisków sterujących..26
Dołączanie kodu.................................... 30
Sprawdzenie zmian wprowadzonych
do aplikacji............................................ 32
Zapisanie i zamknięcie projektu............ 34
Rozdział 2. Środowisko programistyczne 35
Praca z Developer Studio ...................... 35
Otwieranie istniejącego projektu........... 35
Okno obszaru roboczego projektu ........ 37
Korzystanie z panelu C1assView........... 38
Ikona ..................................................... 39
Znaczenie .............................................. 39
Używanie panelu ResourceView...........46
Używanie panelu FileView ...................51
Zarządzanie projektami ......................... 53
Konfigurowanie projektu.......................54
Dodatkowe możliwości konfiguracyjne54
Część II. Okna dialogowe i kontrolki.......55
Rozdział 3. Projektowanie i tworcenie okien
dialogowych.................................... 57
Tworzenie szablonu okna dialogowego 58
Przydzielanie identyfikatora oknu
dialogowemu .........................................62
Korzystanie z karty Dialog General
Properties ...............................................63
Nadawanie stylu oknu dialogowemu.....64
Dodawanie i pozycjonowanie kontrolek. 65
Zmiana rozmiarów kontrolek ................70
Jednoczesne zaznaczanie kilku obiektów .71
Wyrównywanie pozycji obiektów.........72
Użycie prowadnic..................................73
Organizacja kontrolek w oknie
dialogowym ........................................... 74
Grupowanie obiektów ...........................74
Ustalenie porządku dostępu do okien
przy użyciu klawisza Tab ......................76
Ustalanie skrótów klawiaturowych .......78
Rozdział 4. Używanie przycisków
sterujących..................................... 79
Użycie przycisków ................................ 79
Dodawanie funkcji obsługi zdarzenia
użycia przycisku ................................... .81
Istota map komunikatów ...................... .82
Modyfikacja przycisków w czasie pracy
programu ............................................... 84
Użycie przełączników............................ 90
Dodawanie grupy przełączników .......... 91
Określenie wybranego przycisku .......... 93
Użycie pól wyboru................................. 96
Dodawanie pól wyboru.......................... 96
Pobieranie i ustalanie stanu pól wyboru.... 97
-W _ , . _.. _~. ... ... ~ ... ._ _ _ ... ~ ~ ..._ .,. _ 1~ I
4 Spis treści Sl
Rozdział 5. Stosowanie kontrolek
tekstowych ........................,..........101
Stosowanie statycznych pól tekstowych 101
Formatowanie tekstów w oknach
dialogowych........................................102
Łączenie statycznych pól tekstowych
z polami edycji....................................102
Zmiana zawartości statycznego pola
tekstowego w czasie pracy programu . 103
Umieszczanie statycznych pól tekstowych
w oknie dialogowym...........................103
Używanie pól edycji............................ 108
Umieszczanie pól edycji .....................109
Umieszczanie i pobieranie tekstu
z pola edycji ........................................111
Ustalanie reakcji na komunikaty
powiadamiające, dotyczące pól edycji..112
Wyprowadzanie podklas dla pól edycji 116
Stosowanie wieloliniowych pól edycji 122
Stosowanie pasków przewijania..........155
Dodawanie pasków przewijania do okna
dialogowego ........................................155
Przypisanie zmiennych paskom
przewijania ..........................................156
Inicjalizowanie pasków przewijania....157
Obsługa powiadomień pasków
przewijania ..........................................160
Stosowanie suwaków kontrolnych ......164
Umieszczenie suwaka kontrolnego
w oknie dialogowym ...........................164
Prcypisanie zmiennej obiektowi suwaka.166
Inicjalizacja obiektu suwaka.............:..166
Odpowiedzi na powiadomienia obiektu
suwaka .................................................168
Stosowanie próbników daty i godziny.169
Umieszczanie próbników daty i godziny
w oknie dialogowym ...........................169
Przypisywanie zmiennych do obiektów
próbników daty i godziny....................171
Inicjalizowanie próbników daty
i godziny ..............................................172
Powiadomienia o zmianie daty............176
Stosowanie kalendarza miesięcznego..178
Umieszczenie kalendarza miesięcznego
w oknie dialogowym ............................178
Przypisanie zmiennej do obiektu
kalendarza............................................179
Inicjalizacja obiektu kalendarza ..........180
Ustalanie zakresu dostępnych dat
w kalendarzu........................................181
Reakcje na powiadomienia
o zmianie wyboru daty ........................183
Ro;
Rozdział 6: Używanie list........................ 123
Tworzenie list...................................... 123
Dodawanie list kombinowanych
(rozwijanych) ...................................... 124
Dodawanie list drzewiastych .............. 126
Wykorzystanie pól listy ...................... 128
Użycie list szczegółowych.................. 129
Zapełnianie list.................................... 131
Umieszczanie elementów na liście
kombinowanej ..................................... 132
Reakcja programu na komunikaty
powiadamiające listy kombinowanej.. 135
Wypełnianie listy drzewiastej ............. 136
Wypełnianie pola listy ........................ 139
Reakcja programu na komunikaty
powiadamiające pola listy................... 141
Wypełnianie listy szczegółowej.......... 143
Rozdział 7. Stosowanie wskaźników
postępu, pasków prcewijania,
suwaków oraz obiektów
pobierających datę i godzinę ..... 149
Obiekty zorientowane na zakres wartości 149
Użycie wskaźnika postępu .................. 149
Umieszczenie wskaźnika postępu
w oknie dialogowym........................... 150
Przypisanie zmiennej do wskaźnika
postępu ................................................ 152
Manipulowanie i zmiany wskazań
wskaźnika postępu .............................. 153
Rozdział 8. Obsługa zdarceń
wywoływanych myszą.................185
Obsługa powiadomień klawiszy myszy 185
Obsługa zdarzeń naciśnięcia
i zwolnienia klawisza myszy ...............186
Przechwytywanie zdarzeń dwukrotnego
kliknięcia .............................................191
Śledzenie ruchów i położenia wskaźnika
myszy...................................................192
Obsługa zdarzenia przesunięcia
wskaźnika myszy.................................192
Przechwytywanie wskaźnika myszy ...196
Ustalanie obszaru testowania ..............198
Stosowanie klasy CRectTracker..........199
Roz
Spis treści 5
Rozdział 9. Stosowanie kontrolek
ActiveX ........................................ 205
Wybór kontrolek ActiveX z galerii
Component Gallery ............................. 206
Przeglądanie kontrolek ActiveX ......... 206
Włączanie nowego obiektu do bieżącego
projektu ..........,.................................... 207
Wybór, skalowanie i testowanie
kontrolek ActiveX z paska narzędziowego
Controls ............................................... 209
Zmiana właściwości kontrolki
w edytorze zasobów ............................ 211
Ustalanie właściwości standardowych 211
Korzystanie z kart właściwości........... 211
Stosowanie klas dostarczonych
z kontrolką........................................... 212
Dodanie zmiennej składowej dla
kontrolki .............................................. 213
Programowe pobieranie i ustalanie
właściwości kontrolki ......................... 213
Implementacja funkcji obsługi zdarzeń
ActiveX za pomocą C1assWizard ....... 216
Rozdział 10. Tworcenie własnych okien
dialogowych i ich klas................. 221
Tworzenie klasy okna dialogowego.... 221
Dodawanie szablonu nowego okna
dialogowego ....................................... . 222
Wyprowadzanie klas z klasy CDialog
za pomocą C1assWizard......................223
Inicjalizowanie nowej klasy okna
dialogowego........................................ 225
Wyświetlanie modalnych okien
dialogowych........................................ 226
Dodawanie zmiennej składowej dla
zachowywania danych z okna
dialogowego........................................ 227
Wymiana i zatwierdzanie danych
z okien dialogowych ........................... 229
Stosowanie funkcji Data Exchange
(DDX) ................................................. 230
Stosowanie funkcji Data Validation
(DDV) ................................................ . 232
Tworzenie własnych funkcji
zatwierdzających................................ . 234
Używanie niemodalnych okien
dialogowych ........................................ 235
Tworzenie i usuwanie niemodalnego
okna dialogowego .............................. . 236
Przesyłanie i pobieranie danych
z niemodalnego okna dialogowego .....239
Obsługa komunikatu o zamknięciu
niemodalnego okna dialogowego........242
Usunięcie przycisku zamykającego ......243
Część III. Elementy aplikacji ................245
Rozdział 11. Praca z rysunkami,
bitmapami i ikonami...................247
Stosowanie edytora graficznego .......... 248
Tworzenie i edycja ikon ......................250
Modyfikacja domyślnej ikony MFC....250
Umieszczanie nowego zasobu ikony...251
Umieszczanie nowego zasobu bitmapy.252
Ustalanie rozmiarów i liczby kolorów
dla bitmapy ..........................................253
Importowanie rysunków......................254
Stosowanie rysunków w oknach
dialogowych......................................... 255
Ustalanie właściwości graficznego
kontrolki ..............................................256
Ładowanie zasobów graficznych podczas
pracy programu............,.......................257
Tworzenie graficznych przycisków..... 261
Tworzenie bitmap dla stanów przycisku.262
Użycie klasy przycisku graficznego....264
Używanie rysunków w obiektach
sterujących ........................................... 265
Istota list obrazów................................265
Tworzenie i stosowanie list obrazów...268
Rozdział 12. Dokumenty, widoki, ramki
oraz ich stosowanie..................... 273
Tworzenie aplikacji SDI...................... 274
Klasy aplikacji SDL............................ .278
Elementy wizualne aplikacji SDI ....... .280
Istota szablonów dokumentów SDI..... 282
Stosowanie funkcji osnowy w
architekturze dokument/widok ........... .284
Używanie dokumentów i widoków ..... 289
Inicjalizacja danych dokumentu......... .290
Dodawanie do dokumentu zmiennych
składowych ......................................... .291
Dostęp widoku do danych dokumentu. .292
Używanie standardowych zasobów
szablonu.............................................. .294
Odświeżanie widoku .......................:.. .296
6 Spis treści
Rozdział 13. Praca z menu ..................... 299
Tworzenie i edycja zasobów menu ..... 299
Dodawanie nowych zasobów menu....300
Dodawanie do menu pozycji
nagłówków ..........................................301
Dodawanie pozycji menu....................302
Przypisywanie identyfikatorów
do poleceń ........................................... 303
Zmiany właściwości pozycji menu.....303
Umieszczanie separatorów.................. 304
Tworzenie pozycji menu podrzędnego. 304
Umieszczanie znaczników ..................305
Umieszczanie skrótów klawiaturowych305
Obsługa poleceń menu ........................ 306
Dodawanie funkcji obsługujących
polecenia menu ................................... 306
Dodawanie funkcji obsługi poleceń
interfejsu użytkownika........................308
Aktywowanie i dezaktywowanie pozycji
menu....................................................309
Umieszczanie i usuwanie znaczników 309
Dynamiczna zmiana treści pozycji
menu.................................................... 310
Dodawanie menu skrótów................... 311
Uruchamianie menu skrótów .............. 31 I
Obsługa poleceń menu skrótów .......... 315
Tworzenie i dostęp do obiektów menu 316
Inicjalizacja obiektu CMenu ............... 316
Dynamiczne dodawanie pozycji menu . 317
Dynamiczne modyfikowanie pozycji
menu....................................................320
Dynamiczne usuwanie pozycji menu..321
Rozdział 14. Praca z paskami narcędzi
i stanu........................................... 323
Dostosowywanie standardowych pasków
narzędziowych..................................... 323
Istota paska narzędziowego ................324
Umieszczanie nowych przycisków
na pasku narzędziowym za pomocą
edytora zasobów..................................329
Przemieszczanie i usuwanie przycisków
oraz dodawanie separatorów............... 331
Aktywacja i dezaktywacja przycisków
paska narzędziowego ..........................331
Dodawanie własnych pasków
narzędziowych..................................... 332
Umieszczanie paska narzędziowego
w oknie głównym................................333
Ukrywanie i wyświetlanie paska
narzędziowego.....................................334
Lokalizowanie paska narzędziowego
z aplikacji.............................................335
Zachowywanie i załadowywanie pozycji
paska narzędziowego...........................335
Stosowanie pasków dialogowych........336
Dodawanie zasobu paska dialogowego.337
Przyłączenie paska dialogowego do
okna głównego ....................................338
Obsługa kontrolek pasków dialogowych 340
Dostosowywanie paska stanu ..............342
Istota standardowego paska stanu .......343
Dodawanie indykatorów
i separatorów .......................................345
Dynamiczne zmiany wymiarów, stylu
i tekstu w panelach ..............................349
Istota pasków kontenerowych
w programie Internet Explorer ............ 353
Tworzenie paska kontenerowego za
pomocą AppWizard.............................354
Nadawanie tytułu i przydzielanie
bitmapy tła paska kontenerowego .......356
Część IV. Tworzenie grafiki....................357
Rozdział 15. Rysowanie w kontekście
urządzenia....................................359
Wprowadzenie do pojęcia kontekstu
urządzenia............................................ 359
Typy kontekstów urządzenia.............. .360
Stosowanie klasy CDC ....................... .360
Stosowanie kontekstu urządzenia
Client .................................................. .366
Stosowanie kontekstu urządzenia Paint . .367
Stosowanie kontekstu urządzenia
pamięci ............................................... .372
Stosowanie trybów odwzorowania...... 375
Tryby odwzorowania swobodnego
skalowania.......................................... .379
Badanie możliwości urządzenia......... .381
Rozdział 16. Stosowanie piór i pędzli.....387
Tworzenie piór.....................................387
Stosowanie klasy CPen........................387
Zmiana szerokości pióra......................388
Zmiana koloru pióra ............................388
Użycie stosu piór.................................390
Wybór pióra do kontekstu urządzenia...390
Usuwanie piór......................................392
Spi
Roz
Spis treści
7
Rysowanie linii i kształtów za pomocą
pióra..................................................... 393
Tworzenie kontekstu urządzenia do
rysowania ............................................394
Zmiana położenia pióra....................... 394
Rysowanie linii ...................................396
Rysowanie w oparciu o współrzędne.. 398
Rysowanie okręgów i elips ................. 400
Rysowanie krzywych..........................402
Rysowanie wielokątów .......................404
Tworzenie pędzli................................. 405
Stosowanie klasy CBrush.................... 405
Tworzenie pędzli rysujących kolorem
pełnym i wzorem kreskowanym ......... 406
Zmiana tła okna................................... 406
Tworzenie pędzli z rysunków
i wzorów.............................................. 408
Używanie stosu pędzli ........................ 410
Wybieranie pędzla do kontekstu
urządzenia ........................................... 412
Usuwanie pędzli.................................. 413
Malowanie wypełnionych figur za
pomocą Pędzli ..................................... 413
Rysowanie prostokątów i prostokątów
z zaokrąglonymi narożnikami............. 413
Rysowanie elips i okręgów ................. 415
Rysowanie cięciw ................:.............. 415
Rysowanie wielokątów ....................... 416
Rozdział 17. Korzystanie z czcionek...... 421
Funkcje rysujące tekst......................... 421
Odrysowywanie prostego tekstu ........ .422
Ustalanie wyrównania tekstu ............. .423
Zmiana koloru czcionki i jej tła ......... .425
Rysowanie tekstu przezroczystego
i nieprzezroczystego........................... .427
Obcinanie tekstu................................. .428
Tworzenie czcionek ............................ 429
Stosowanie klasy CFont..................... .430
Tworzenie czcionek za pomocą funkcji
CreatePointFont()............................... .430
Tworzenie czcionek za pomocą funkcji
CreateFontQ ....................................... . 431
Wybór czcionek .................................. 437
Wyliczanie czcionek.......................... .437
Używanie okna dialogowego wyboru
czcionki .............................................. . 442
Rysowanie tekstu formatowanego
i wieloliniowego................................. .445
Usuwanie czcionek ............................ . 447
Część V. Zaawansowane dokumenty
i techniki dla widoków................449
Rozdział 18. Rozciąganie i prcewijanie
widoków .......................................451
Obsługa rozciągania okna................... .451
Obsługa zdarzeń rozciągania............. ..452
Obsługa zdarzenia Sizing .................. ..453
Obsługa zdarzenia Size...................... ..456
Definiowanie ograniczeń rozmiarów
okna ................................................... ..462
Okna dialogowe dające się rozciągać ..464
Przewijanie zawartości okna .............. .464
Definiowanie rozmiarów przewijanego
obszaru............................................... ..465
Zmienianie małego i dużego skoku
przewijania ........................................ ..469
Do czego służy bieżąca pozycja
widocznego obszaru .......................... ..470
Obsługa komunikatów paska
przewijania ........................................ ..473
Rozdział 19. Widoki List, Tree, Rich Edit
i HTML ........................................ 477
Czym są widoki List, Tree i Rich Edit? .. 477
Tworzenie i korzystanie z widoku List . 477
Tworzenie aplikacji z widokiem List
za pomocą kreatora AppWizard ......... .478
Dodawanie elementów do listy .......... .478
Zmiana stylu listy ............................... .483
Kolumny i nagłówki kolumn.............. .486
Odnajdywanie wybranych przez
użytkownika elementów na liście....... .491
Widok Tree .......................................... 494
Tworzenie widoku Tree za pomocą
kreatora AppWizard ........................... .494
Style widoku Tree............................... .495
Dodawanie elementów do drzewa ....... .496
Odnajdywanie wybranego węzła
drzewa ................................................ .499
Ręczne edytowanie elementów drzewa .501
Widok Rich Edit .................................. 503
Tworzenie widoku Rich Edit.............. .504
Zachowywanie i ładowanie tekstu...... .505
Formatowanie akapitów tekstu........... .505
Dodawanie obiektów OLE ................. .508
HTML - widok do budowania
przeglądarki ......................................... 508
Tworzenie widoku HTML.................. .509
Definiowanie adresu URL.................. .509
rr
8 Spis treści Spis
Obsługa zdarzeń przeglądarki.............510
Odpowiedni stosunek długości do
szerokości strony .................................573
Stronicowanie i orientowanie wydruku ..577
Definiowanie pierwszej i ostatniej
Rozdz
Rozdział 20. Tworzenie okien z kilkoma
widokami ..................................... 511
Jak działa okno z kilkoma widokami? 511
Korzystanie z okna dzielonego ........... 512
Tworzenie dynamicznych okien
dzielonych.......................................... .512
Inicjalizacja dynamicznych okien
dzielonych ........................................... 515
Tworzenie statycznych okien dzielonych 518
Inicjalizacja statycznego okna
dzielonego ........................................... 519
Tworzenie aplikacji podobnej do
Eksploratora Windows........................ 524
Inne sposoby tworzenia okien
z wieloma widokami ........................... 525
Dodawanie i usuwanie widoków ........ 525
Zarządzanie tworzeniem
i aktywacją widoku ............................. 526
strony ...................................................577
Okno dialogowe Print..........................581
Opcje orientacji strony ........................585
Dodawanie obiektów GDI za pomocą
funkcji OnBeginPrinting( ) ....................586
Modyfikowanie kontekstu urządzenia.588
Przerywanie wydruku..........................589
Drukowanie bez pomocy funkcji szkieletu
aplikacji ...............................................589
Bezpośrednie przyzywanie okna
dialogowego Print................................589
Funkcje StartDoc ( ) i EndDoc ( )........592
Funkcje StartPage ( ) i EndPage ( ).........593
Część VI. Eksportowanie danych
aplikacji .......................................595
Rozdział 21. Aplikacje Rozdział 23. Zachowywanie, ładowanie
wielodokumentowe..................... 533 i transferowanie
danych..............597
Tworzenie aplikacji
wielodokumentowej ............................ 534
Hierarchia klas w aplikacji MDI ......... 538
Wizualne elementy aplikacji MDI ...... 540
Szablon dokumentu MDI .................... 543
Porządek tworzenia dokumentu, widoku
i okna obramowującego MDI ............. 545
Poruszanie się między elementami
architektury dokument/widok ............. 548
Przykładowa aplikacja MDL............... 550
Dodawanie do dokumentu zmiennych
składowych ......................................... 551
Sięganie do danych dokumentu
z klasy widoku .................................... 552
Modyfikowanie danych dokumentu
i uaktualnianie widoku........................ 553
Dodawanie nowych szablonów
dokumentów........................................ 556
Rozdział 22. Drukowanie i podgląd
wydruku....................................... 563
Drukowanie za pomocą funkcji
szkieletu aplikacji................................ 563
Korzystanie ze standardowych funkcji
obsługujących drukowanie..................564
Pokrywanie funkcji OnPrintQ.... .......568
Kontekst urządzenia drukarki ............. 571
Serializacja...........................................597
Tworzenie aplikacji SDI obsługującej
operacje na plikach..............................598
Tworzenie obiektów przystosowanych
do serializacji.......................................599
Deklarowanie klasy pozwalającej na
serializację ...........................................601
Przechowywanie danych dokumentu ..606
Serializowanie obiektów .....................610
Lista najczęściej używanych plików ...613
Rejestrowanie typów dokumentów ........613
Obsługa plików.................................... 614
Klasa CFile ..........................................614
Otwieranie plików ...............................615
Odczytywanie i zapisywanie pliku........616
Bieżąca pozycja pliku..........................621
Odnajdywanie informacji
o wykorzystywanym pliku ..................622
Zmienianie nazwy pliku i usuwanie
pliku.....................................................624
Klasy pochodne klasy CFile................624
Transferowanie danych za pomocą
schowka ............................................... 625
Definiowanie formatów danych
schowka ...............................................626
Kopiowanie danych do schowka.........627
Wklejanie danych ze schowka.............630
Rozd;
Część
Rozd
Spis treści 9
Rozdział 24. Bazy danych i widok Record 633
Bazy danych........................................ 633
Relacyjne bazy danych........................ 634
ODBC ................................................ . 634
Konfigurowanie źródła danych.......... . 636
Tworzenie aplikacji korzystającej
z bazy danych...................................... 639
Załączanie do programu bazy danych
za pomocą kreatora AppWizard......... . 639
Lączenie się z bazą danych................ . 641
Zapytania do bazy danych ................. . 643
Zmienianie danych zapisanych
w bazie ............................................... . 646
Wiązanie pól z tablicami bazy danych .647
Widok Record ..................................... 648
Edytowanie szablonu widoku Record .648
Wiązanie kontrolek z polami zbioru
rekordów ............................................ . 650
Rozdział 25. Zasady programowania OLE
i COM .......................................... 653
Programowanie w oparciu
o komponenty...................................... 653
Interfejsy COM ..............:.................... 655
Identyfikatory interfejsów, identyfikatory
klas i identyfikatory GUID ................. 657
Tworzenie egzemplarzy obiektów COM 659
Pośredniczące biblioteki DLL
i szeregowanie..................................... 661
Wersje interfejsów .............................. 662
Automatyzacja OLE............................ 663
Jak działa interfejs przesyłający.......... 663
Warianty.............................................. 664
Tworzenie serwem automatyzacji....... 666
Tworzenie klienta automatyzacji ........ 673
Kontenery OLE, serwery
i miniserwery ...................................... 677
Część VII. Zaawansowane zagadnienia
programowania ........................... 681
Rozdział 26. Tworzenie kontrolek
ActiveX ........................................ 683
Tworzenie szkieletu kontrolki ActiveX
za pomocą kreatora ActiveX Control
Wizard ................................................. 683
Definiowanie liczby kontrolek, obsługi
licencjonowania i pomocy .................. 684
Definiowanie nazw klas
i dodatkowych opcji............................684
Budowanie kontrolek ActiveX
w oparciu o kontrolki już istniejące ........686
Zaawansowane możliwości kontrolek
ActiveX................................................686
Tworzenie kodu kontrolki ................... 687
Malowanie kontrolki na ekranie..........688
Zarządzanie zdarzeniami wywołanymi
przez użytkownika
i obsługa wykonywanych przez niego
operacji ................................................691
Szybki sposób testowania kontrolki........693
Uruchamianie zdarzeń.........................695
Tworzenie interfejsu właściwości .......697
Właściwości wyposażenia...................698
Dodawanie karty właściwości
definiujących kolory............................700
Dodawanie własnych właściwości ......701
Dodawanie kontrolek kart właściwości
dla własnych właściwości....................704
Utrwalanie ustawień właściwości........706
Kompilowanie i rejestrowanie kontrolki. 709
Różne pliki źródłowe...........................709
Tworzenie biblioteki typów
i plików licencji...................................710
Rejestrowanie kontrolki.......................710
Program testujący ActiveX Control Test
Container ............................................. 711
Wybieranie testowanej kontrolki.........711
Testowanie właściwości kontrolki ........711
Obserwowanie uruchomionych zdarzeń .713
Rozdział 27. Korcystanie ze
zintegrowanego debugera...........715
Usuwanie błędów z programu
i narzędzia debugera ............................ 715
Tryby Debug i Relase......................... .715
Opcje trybu Debug i wyświetlane
w nim komunikaty ostrzegawcze ....... .717
Tworzenie i korzystanie z informacji
programu Source Browser.................. .719
Debugowanie przez sieć oraz opcja
Just in time Debugging....................... .722
Makroinstrukcje TRACE, ASSERT
i przeglądanie programu krok po kroku.. 723
Makroinstrukcja TRACE.................... .724
Makroinstrukcje ASSERT
i VERIFY............................................ .727
Punkty kontrolne i przeglądanie kodu
programu krok po kroku..................... .730
Edit and Continue............................... .733
10 Spis treści
Śledzenie zmiennych
programu......... .733 DirectPlay.................................
...........763
Inne okna
debugera............................ .735 DirectInput.............
..............................763
Inne narzędzia
debugowania............... 736 Directsetup........................
..................764
Spy++................................................. .
736 Tworzenie wiadomości i programowanie
Process Viewer................................... .739 obsługi
poczty za pomocą MAPL............ 764
OLE/COM Object Viewer .................. 739 Korzystanie z
prostszej wersji MAPI ..765
MFC Tracer.........................................
740 Dodawanie programu pocztowego
MAPI za pomocą kreatora AppWizard...767
Rozdział 28. Interfejsy API i zestawy
Biblioteki multimedialne i interfejs
SDK.............................................. 741
MCL.....................................................772
Krótkie wprowadzenie API i SDK...... 741 Interfejs multimedialny
MCI...............772
Tworzenie szybkich aplikacji Komunikaty powiadamiające MCL.....776
dźwiękowych i graficznych za pomocą Dodawanie do aplikacji okna
MCI......780
interfejsów DirectX............................. 742
Directsound ........................................ 743
Słownik ..................................................... 785
DirectDraw.......................................... 752
Skorowidz ...........................
799
Direct3D.............................................. 762
Wprowadzenie...........................................15
Czym jest Visual C++ 6.0 i dlaczego
warto go używać?.................................. 15
Cóż nowego jest w tej książce?............. 15
Czy to jest odpowiednia książka? ......... 16
Konwencje zastosowane w książce....... 16
Część I. Tworzenie aplikacji Visual C++ 17
Rozdział 1. Projektowanie i tworzenie
programu w Visual C++..............19
Uruchomienie Visual C++ .................... 19
Tworzenie nowego projektu.................. 20
Wybór rodzaju projektu ....................... .21
Nadawanie nazwy projektowi i wybór
lokalizacj i ............................................. . 21
Używanie AppWizard........................... 21
Korzystanie z podstawowych opcji
AppWizard............................................ 22
Generowanie i uruchamianie aplikacji.. 24
Wybór konfiguracji procesu
generowania pliku................................ .24
Przeprowadzanie procesów kompilacji
i łączenia ............................................... 24
Uruchomienie aplikacji......................... 25
Zgodność z interfejsem Windows......... 26
Modyfikacja interfejsu aplikacji ........... 26
Umieszczanie przycisków sterujących..26
Dołączanie kodu.................................... 30
Sprawdzenie zmian wprowadzonych
do aplikacji............................................ 32
Zapisanie i zamknięcie projektu............ 34
Rozdział 2. Środowisko programistyczne 35
Praca z Developer Studio ...................... 35
Otwieranie istniejącego projektu........... 35
Okno obszaru roboczego projektu ........ 37
Korzystanie z panelu C1assView........... 38
Ikona ..................................................... 39
Znaczenie .............................................. 39
Używanie panelu ResourceView...........46
Używanie panelu FileView ...................51
Zarządzanie projektami ......................... 53
Konfigurowanie projektu.......................54
Dodatkowe możliwości konfiguracyjne54
Część II. Okna dialogowe i kontrolki.......55
Rozdział 3. Projektowanie i tworcenie okien
dialogowych.................................... 57
Tworzenie szablonu okna dialogowego 58
Przydzielanie identyfikatora oknu
dialogowemu .........................................62
Korzystanie z karty Dialog General
Properties ...............................................63
Nadawanie stylu oknu dialogowemu.....64
Dodawanie i pozycjonowanie kontrolek. 65
Zmiana rozmiarów kontrolek ................70
Jednoczesne zaznaczanie kilku obiektów .71
Wyrównywanie pozycji obiektów.........72
Użycie prowadnic..................................73
Organizacja kontrolek w oknie
dialogowym ........................................... 74
Grupowanie obiektów ...........................74
Ustalenie porządku dostępu do okien
przy użyciu klawisza Tab ......................76
Ustalanie skrótów klawiaturowych .......78
Rozdział 4. Używanie przycisków
sterujących..................................... 79
Użycie przycisków ................................ 79
Dodawanie funkcji obsługi zdarzenia
użycia przycisku ................................... .81
Istota map komunikatów ...................... .82
Modyfikacja przycisków w czasie pracy
programu ............................................... 84
Użycie przełączników............................ 90
Dodawanie grupy przełączników .......... 91
Określenie wybranego przycisku .......... 93
Użycie pól wyboru................................. 96
Dodawanie pól wyboru.......................... 96
Pobieranie i ustalanie stanu pól wyboru.... 97
-W _ , . _.. _~. ... ... ~ ... ._ _ _ ... ~ ~ ..._ .,. _ 1~ I
4 Spis treści Sl
Rozdział 5. Stosowanie kontrolek
tekstowych ........................,..........101
Stosowanie statycznych pól tekstowych 101
Formatowanie tekstów w oknach
dialogowych........................................102
Łączenie statycznych pól tekstowych
z polami edycji....................................102
Zmiana zawartości statycznego pola
tekstowego w czasie pracy programu . 103
Umieszczanie statycznych pól tekstowych
w oknie dialogowym...........................103
Używanie pól edycji............................ 108
Umieszczanie pól edycji .....................109
Umieszczanie i pobieranie tekstu
z pola edycji ........................................111
Ustalanie reakcji na komunikaty
powiadamiające, dotyczące pól edycji..112
Wyprowadzanie podklas dla pól edycji 116
Stosowanie wieloliniowych pól edycji 122
Stosowanie pasków przewijania..........155
Dodawanie pasków przewijania do okna
dialogowego ........................................155
Przypisanie zmiennych paskom
przewijania ..........................................156
Inicjalizowanie pasków przewijania....157
Obsługa powiadomień pasków
przewijania ..........................................160
Stosowanie suwaków kontrolnych ......164
Umieszczenie suwaka kontrolnego
w oknie dialogowym ...........................164
Prcypisanie zmiennej obiektowi suwaka.166
Inicjalizacja obiektu suwaka.............:..166
Odpowiedzi na powiadomienia obiektu
suwaka .................................................168
Stosowanie próbników daty i godziny.169
Umieszczanie próbników daty i godziny
w oknie dialogowym ...........................169
Przypisywanie zmiennych do obiektów
próbników daty i godziny....................171
Inicjalizowanie próbników daty
i godziny ..............................................172
Powiadomienia o zmianie daty............176
Stosowanie kalendarza miesięcznego..178
Umieszczenie kalendarza miesięcznego
w oknie dialogowym ............................178
Przypisanie zmiennej do obiektu
kalendarza............................................179
Inicjalizacja obiektu kalendarza ..........180
Ustalanie zakresu dostępnych dat
w kalendarzu........................................181
Reakcje na powiadomienia
o zmianie wyboru daty ........................183
Ro;
Rozdział 6: Używanie list........................ 123
Tworzenie list...................................... 123
Dodawanie list kombinowanych
(rozwijanych) ...................................... 124
Dodawanie list drzewiastych .............. 126
Wykorzystanie pól listy ...................... 128
Użycie list szczegółowych.................. 129
Zapełnianie list.................................... 131
Umieszczanie elementów na liście
kombinowanej ..................................... 132
Reakcja programu na komunikaty
powiadamiające listy kombinowanej.. 135
Wypełnianie listy drzewiastej ............. 136
Wypełnianie pola listy ........................ 139
Reakcja programu na komunikaty
powiadamiające pola listy................... 141
Wypełnianie listy szczegółowej.......... 143
Rozdział 7. Stosowanie wskaźników
postępu, pasków prcewijania,
suwaków oraz obiektów
pobierających datę i godzinę ..... 149
Obiekty zorientowane na zakres wartości 149
Użycie wskaźnika postępu .................. 149
Umieszczenie wskaźnika postępu
w oknie dialogowym........................... 150
Przypisanie zmiennej do wskaźnika
postępu ................................................ 152
Manipulowanie i zmiany wskazań
wskaźnika postępu .............................. 153
Rozdział 8. Obsługa zdarceń
wywoływanych myszą.................185
Obsługa powiadomień klawiszy myszy 185
Obsługa zdarzeń naciśnięcia
i zwolnienia klawisza myszy ...............186
Przechwytywanie zdarzeń dwukrotnego
kliknięcia .............................................191
Śledzenie ruchów i położenia wskaźnika
myszy...................................................192
Obsługa zdarzenia przesunięcia
wskaźnika myszy.................................192
Przechwytywanie wskaźnika myszy ...196
Ustalanie obszaru testowania ..............198
Stosowanie klasy CRectTracker..........199
Roz
Spis treści 5
Rozdział 9. Stosowanie kontrolek
ActiveX ........................................ 205
Wybór kontrolek ActiveX z galerii
Component Gallery ............................. 206
Przeglądanie kontrolek ActiveX ......... 206
Włączanie nowego obiektu do bieżącego
projektu ..........,.................................... 207
Wybór, skalowanie i testowanie
kontrolek ActiveX z paska narzędziowego
Controls ............................................... 209
Zmiana właściwości kontrolki
w edytorze zasobów ............................ 211
Ustalanie właściwości standardowych 211
Korzystanie z kart właściwości........... 211
Stosowanie klas dostarczonych
z kontrolką........................................... 212
Dodanie zmiennej składowej dla
kontrolki .............................................. 213
Programowe pobieranie i ustalanie
właściwości kontrolki ......................... 213
Implementacja funkcji obsługi zdarzeń
ActiveX za pomocą C1assWizard ....... 216
Rozdział 10. Tworcenie własnych okien
dialogowych i ich klas................. 221
Tworzenie klasy okna dialogowego.... 221
Dodawanie szablonu nowego okna
dialogowego ....................................... . 222
Wyprowadzanie klas z klasy CDialog
za pomocą C1assWizard......................223
Inicjalizowanie nowej klasy okna
dialogowego........................................ 225
Wyświetlanie modalnych okien
dialogowych........................................ 226
Dodawanie zmiennej składowej dla
zachowywania danych z okna
dialogowego........................................ 227
Wymiana i zatwierdzanie danych
z okien dialogowych ........................... 229
Stosowanie funkcji Data Exchange
(DDX) ................................................. 230
Stosowanie funkcji Data Validation
(DDV) ................................................ . 232
Tworzenie własnych funkcji
zatwierdzających................................ . 234
Używanie niemodalnych okien
dialogowych ........................................ 235
Tworzenie i usuwanie niemodalnego
okna dialogowego .............................. . 236
Przesyłanie i pobieranie danych
z niemodalnego okna dialogowego .....239
Obsługa komunikatu o zamknięciu
niemodalnego okna dialogowego........242
Usunięcie przycisku zamykającego ......243
Część III. Elementy aplikacji ................245
Rozdział 11. Praca z rysunkami,
bitmapami i ikonami...................247
Stosowanie edytora graficznego .......... 248
Tworzenie i edycja ikon ......................250
Modyfikacja domyślnej ikony MFC....250
Umieszczanie nowego zasobu ikony...251
Umieszczanie nowego zasobu bitmapy.252
Ustalanie rozmiarów i liczby kolorów
dla bitmapy ..........................................253
Importowanie rysunków......................254
Stosowanie rysunków w oknach
dialogowych......................................... 255
Ustalanie właściwości graficznego
kontrolki ..............................................256
Ładowanie zasobów graficznych podczas
pracy programu............,.......................257
Tworzenie graficznych przycisków..... 261
Tworzenie bitmap dla stanów przycisku.262
Użycie klasy przycisku graficznego....264
Używanie rysunków w obiektach
sterujących ........................................... 265
Istota list obrazów................................265
Tworzenie i stosowanie list obrazów...268
Rozdział 12. Dokumenty, widoki, ramki
oraz ich stosowanie..................... 273
Tworzenie aplikacji SDI...................... 274
Klasy aplikacji SDL............................ .278
Elementy wizualne aplikacji SDI ....... .280
Istota szablonów dokumentów SDI..... 282
Stosowanie funkcji osnowy w
architekturze dokument/widok ........... .284
Używanie dokumentów i widoków ..... 289
Inicjalizacja danych dokumentu......... .290
Dodawanie do dokumentu zmiennych
składowych ......................................... .291
Dostęp widoku do danych dokumentu. .292
Używanie standardowych zasobów
szablonu.............................................. .294
Odświeżanie widoku .......................:.. .296
6 Spis treści
Rozdział 13. Praca z menu ..................... 299
Tworzenie i edycja zasobów menu ..... 299
Dodawanie nowych zasobów menu....300
Dodawanie do menu pozycji
nagłówków ..........................................301
Dodawanie pozycji menu....................302
Przypisywanie identyfikatorów
do poleceń ........................................... 303
Zmiany właściwości pozycji menu.....303
Umieszczanie separatorów.................. 304
Tworzenie pozycji menu podrzędnego. 304
Umieszczanie znaczników ..................305
Umieszczanie skrótów klawiaturowych305
Obsługa poleceń menu ........................ 306
Dodawanie funkcji obsługujących
polecenia menu ................................... 306
Dodawanie funkcji obsługi poleceń
interfejsu użytkownika........................308
Aktywowanie i dezaktywowanie pozycji
menu....................................................309
Umieszczanie i usuwanie znaczników 309
Dynamiczna zmiana treści pozycji
menu.................................................... 310
Dodawanie menu skrótów................... 311
Uruchamianie menu skrótów .............. 31 I
Obsługa poleceń menu skrótów .......... 315
Tworzenie i dostęp do obiektów menu 316
Inicjalizacja obiektu CMenu ............... 316
Dynamiczne dodawanie pozycji menu . 317
Dynamiczne modyfikowanie pozycji
menu....................................................320
Dynamiczne usuwanie pozycji menu..321
Rozdział 14. Praca z paskami narcędzi
i stanu........................................... 323
Dostosowywanie standardowych pasków
narzędziowych..................................... 323
Istota paska narzędziowego ................324
Umieszczanie nowych przycisków
na pasku narzędziowym za pomocą
edytora zasobów..................................329
Przemieszczanie i usuwanie przycisków
oraz dodawanie separatorów............... 331
Aktywacja i dezaktywacja przycisków
paska narzędziowego ..........................331
Dodawanie własnych pasków
narzędziowych..................................... 332
Umieszczanie paska narzędziowego
w oknie głównym................................333
Ukrywanie i wyświetlanie paska
narzędziowego.....................................334
Lokalizowanie paska narzędziowego
z aplikacji.............................................335
Zachowywanie i załadowywanie pozycji
paska narzędziowego...........................335
Stosowanie pasków dialogowych........336
Dodawanie zasobu paska dialogowego.337
Przyłączenie paska dialogowego do
okna głównego ....................................338
Obsługa kontrolek pasków dialogowych 340
Dostosowywanie paska stanu ..............342
Istota standardowego paska stanu .......343
Dodawanie indykatorów
i separatorów .......................................345
Dynamiczne zmiany wymiarów, stylu
i tekstu w panelach ..............................349
Istota pasków kontenerowych
w programie Internet Explorer ............ 353
Tworzenie paska kontenerowego za
pomocą AppWizard.............................354
Nadawanie tytułu i przydzielanie
bitmapy tła paska kontenerowego .......356
Część IV. Tworzenie grafiki....................357
Rozdział 15. Rysowanie w kontekście
urządzenia....................................359
Wprowadzenie do pojęcia kontekstu
urządzenia............................................ 359
Typy kontekstów urządzenia.............. .360
Stosowanie klasy CDC ....................... .360
Stosowanie kontekstu urządzenia
Client .................................................. .366
Stosowanie kontekstu urządzenia Paint . .367
Stosowanie kontekstu urządzenia
pamięci ............................................... .372
Stosowanie trybów odwzorowania...... 375
Tryby odwzorowania swobodnego
skalowania.......................................... .379
Badanie możliwości urządzenia......... .381
Rozdział 16. Stosowanie piór i pędzli.....387
Tworzenie piór.....................................387
Stosowanie klasy CPen........................387
Zmiana szerokości pióra......................388
Zmiana koloru pióra ............................388
Użycie stosu piór.................................390
Wybór pióra do kontekstu urządzenia...390
Usuwanie piór......................................392
Spi
Roz
Spis treści
7
Rysowanie linii i kształtów za pomocą
pióra..................................................... 393
Tworzenie kontekstu urządzenia do
rysowania ............................................394
Zmiana położenia pióra....................... 394
Rysowanie linii ...................................396
Rysowanie w oparciu o współrzędne.. 398
Rysowanie okręgów i elips ................. 400
Rysowanie krzywych..........................402
Rysowanie wielokątów .......................404
Tworzenie pędzli................................. 405
Stosowanie klasy CBrush.................... 405
Tworzenie pędzli rysujących kolorem
pełnym i wzorem kreskowanym ......... 406
Zmiana tła okna................................... 406
Tworzenie pędzli z rysunków
i wzorów.............................................. 408
Używanie stosu pędzli ........................ 410
Wybieranie pędzla do kontekstu
urządzenia ........................................... 412
Usuwanie pędzli.................................. 413
Malowanie wypełnionych figur za
pomocą Pędzli ..................................... 413
Rysowanie prostokątów i prostokątów
z zaokrąglonymi narożnikami............. 413
Rysowanie elips i okręgów ................. 415
Rysowanie cięciw ................:.............. 415
Rysowanie wielokątów ....................... 416
Rozdział 17. Korzystanie z czcionek...... 421
Funkcje rysujące tekst......................... 421
Odrysowywanie prostego tekstu ........ .422
Ustalanie wyrównania tekstu ............. .423
Zmiana koloru czcionki i jej tła ......... .425
Rysowanie tekstu przezroczystego
i nieprzezroczystego........................... .427
Obcinanie tekstu................................. .428
Tworzenie czcionek ............................ 429
Stosowanie klasy CFont..................... .430
Tworzenie czcionek za pomocą funkcji
CreatePointFont()............................... .430
Tworzenie czcionek za pomocą funkcji
CreateFontQ ....................................... . 431
Wybór czcionek .................................. 437
Wyliczanie czcionek.......................... .437
Używanie okna dialogowego wyboru
czcionki .............................................. . 442
Rysowanie tekstu formatowanego
i wieloliniowego................................. .445
Usuwanie czcionek ............................ . 447
Część V. Zaawansowane dokumenty
i techniki dla widoków................449
Rozdział 18. Rozciąganie i prcewijanie
widoków .......................................451
Obsługa rozciągania okna................... .451
Obsługa zdarzeń rozciągania............. ..452
Obsługa zdarzenia Sizing .................. ..453
Obsługa zdarzenia Size...................... ..456
Definiowanie ograniczeń rozmiarów
okna ................................................... ..462
Okna dialogowe dające się rozciągać ..464
Przewijanie zawartości okna .............. .464
Definiowanie rozmiarów przewijanego
obszaru............................................... ..465
Zmienianie małego i dużego skoku
przewijania ........................................ ..469
Do czego służy bieżąca pozycja
widocznego obszaru .......................... ..470
Obsługa komunikatów paska
przewijania ........................................ ..473
Rozdział 19. Widoki List, Tree, Rich Edit
i HTML ........................................ 477
Czym są widoki List, Tree i Rich Edit? .. 477
Tworzenie i korzystanie z widoku List . 477
Tworzenie aplikacji z widokiem List
za pomocą kreatora AppWizard ......... .478
Dodawanie elementów do listy .......... .478
Zmiana stylu listy ............................... .483
Kolumny i nagłówki kolumn.............. .486
Odnajdywanie wybranych przez
użytkownika elementów na liście....... .491
Widok Tree .......................................... 494
Tworzenie widoku Tree za pomocą
kreatora AppWizard ........................... .494
Style widoku Tree............................... .495
Dodawanie elementów do drzewa ....... .496
Odnajdywanie wybranego węzła
drzewa ................................................ .499
Ręczne edytowanie elementów drzewa .501
Widok Rich Edit .................................. 503
Tworzenie widoku Rich Edit.............. .504
Zachowywanie i ładowanie tekstu...... .505
Formatowanie akapitów tekstu........... .505
Dodawanie obiektów OLE ................. .508
HTML - widok do budowania
przeglądarki ......................................... 508
Tworzenie widoku HTML.................. .509
Definiowanie adresu URL.................. .509
rr
8 Spis treści Spis
Obsługa zdarzeń przeglądarki.............510
Odpowiedni stosunek długości do
szerokości strony .................................573
Stronicowanie i orientowanie wydruku ..577
Definiowanie pierwszej i ostatniej
Rozdz
Rozdział 20. Tworzenie okien z kilkoma
widokami ..................................... 511
Jak działa okno z kilkoma widokami? 511
Korzystanie z okna dzielonego ........... 512
Tworzenie dynamicznych okien
dzielonych.......................................... .512
Inicjalizacja dynamicznych okien
dzielonych ........................................... 515
Tworzenie statycznych okien dzielonych 518
Inicjalizacja statycznego okna
dzielonego ........................................... 519
Tworzenie aplikacji podobnej do
Eksploratora Windows........................ 524
Inne sposoby tworzenia okien
z wieloma widokami ........................... 525
Dodawanie i usuwanie widoków ........ 525
Zarządzanie tworzeniem
i aktywacją widoku ............................. 526
strony ...................................................577
Okno dialogowe Print..........................581
Opcje orientacji strony ........................585
Dodawanie obiektów GDI za pomocą
funkcji OnBeginPrinting( ) ....................586
Modyfikowanie kontekstu urządzenia.588
Przerywanie wydruku..........................589
Drukowanie bez pomocy funkcji szkieletu
aplikacji ...............................................589
Bezpośrednie przyzywanie okna
dialogowego Print................................589
Funkcje StartDoc ( ) i EndDoc ( )........592
Funkcje StartPage ( ) i EndPage ( ).........593
Część VI. Eksportowanie danych
aplikacji .......................................595
Rozdział 21. Aplikacje Rozdział 23. Zachowywanie, ładowanie
wielodokumentowe..................... 533 i transferowanie
danych..............597
Tworzenie aplikacji
wielodokumentowej ............................ 534
Hierarchia klas w aplikacji MDI ......... 538
Wizualne elementy aplikacji MDI ...... 540
Szablon dokumentu MDI .................... 543
Porządek tworzenia dokumentu, widoku
i okna obramowującego MDI ............. 545
Poruszanie się między elementami
architektury dokument/widok ............. 548
Przykładowa aplikacja MDL............... 550
Dodawanie do dokumentu zmiennych
składowych ......................................... 551
Sięganie do danych dokumentu
z klasy widoku .................................... 552
Modyfikowanie danych dokumentu
i uaktualnianie widoku........................ 553
Dodawanie nowych szablonów
dokumentów........................................ 556
Rozdział 22. Drukowanie i podgląd
wydruku....................................... 563
Drukowanie za pomocą funkcji
szkieletu aplikacji................................ 563
Korzystanie ze standardowych funkcji
obsługujących drukowanie..................564
Pokrywanie funkcji OnPrintQ.... .......568
Kontekst urządzenia drukarki ............. 571
Serializacja...........................................597
Tworzenie aplikacji SDI obsługującej
operacje na plikach..............................598
Tworzenie obiektów przystosowanych
do serializacji.......................................599
Deklarowanie klasy pozwalającej na
serializację ...........................................601
Przechowywanie danych dokumentu ..606
Serializowanie obiektów .....................610
Lista najczęściej używanych plików ...613
Rejestrowanie typów dokumentów ........613
Obsługa plików.................................... 614
Klasa CFile ..........................................614
Otwieranie plików ...............................615
Odczytywanie i zapisywanie pliku........616
Bieżąca pozycja pliku..........................621
Odnajdywanie informacji
o wykorzystywanym pliku ..................622
Zmienianie nazwy pliku i usuwanie
pliku.....................................................624
Klasy pochodne klasy CFile................624
Transferowanie danych za pomocą
schowka ............................................... 625
Definiowanie formatów danych
schowka ...............................................626
Kopiowanie danych do schowka.........627
Wklejanie danych ze schowka.............630
Rozd;
Część
Rozd
Spis treści 9
Rozdział 24. Bazy danych i widok Record 633
Bazy danych........................................ 633
Relacyjne bazy danych........................ 634
ODBC ................................................ . 634
Konfigurowanie źródła danych.......... . 636
Tworzenie aplikacji korzystającej
z bazy danych...................................... 639
Załączanie do programu bazy danych
za pomocą kreatora AppWizard......... . 639
Lączenie się z bazą danych................ . 641
Zapytania do bazy danych ................. . 643
Zmienianie danych zapisanych
w bazie ............................................... . 646
Wiązanie pól z tablicami bazy danych .647
Widok Record ..................................... 648
Edytowanie szablonu widoku Record .648
Wiązanie kontrolek z polami zbioru
rekordów ............................................ . 650
Rozdział 25. Zasady programowania OLE
i COM .......................................... 653
Programowanie w oparciu
o komponenty...................................... 653
Interfejsy COM ..............:.................... 655
Identyfikatory interfejsów, identyfikatory
klas i identyfikatory GUID ................. 657
Tworzenie egzemplarzy obiektów COM 659
Pośredniczące biblioteki DLL
i szeregowanie..................................... 661
Wersje interfejsów .............................. 662
Automatyzacja OLE............................ 663
Jak działa interfejs przesyłający.......... 663
Warianty.............................................. 664
Tworzenie serwem automatyzacji....... 666
Tworzenie klienta automatyzacji ........ 673
Kontenery OLE, serwery
i miniserwery ...................................... 677
Część VII. Zaawansowane zagadnienia
programowania ........................... 681
Rozdział 26. Tworzenie kontrolek
ActiveX ........................................ 683
Tworzenie szkieletu kontrolki ActiveX
za pomocą kreatora ActiveX Control
Wizard ................................................. 683
Definiowanie liczby kontrolek, obsługi
licencjonowania i pomocy .................. 684
Definiowanie nazw klas
i dodatkowych opcji............................684
Budowanie kontrolek ActiveX
w oparciu o kontrolki już istniejące ........686
Zaawansowane możliwości kontrolek
ActiveX................................................686
Tworzenie kodu kontrolki ................... 687
Malowanie kontrolki na ekranie..........688
Zarządzanie zdarzeniami wywołanymi
przez użytkownika
i obsługa wykonywanych przez niego
operacji ................................................691
Szybki sposób testowania kontrolki........693
Uruchamianie zdarzeń.........................695
Tworzenie interfejsu właściwości .......697
Właściwości wyposażenia...................698
Dodawanie karty właściwości
definiujących kolory............................700
Dodawanie własnych właściwości ......701
Dodawanie kontrolek kart właściwości
dla własnych właściwości....................704
Utrwalanie ustawień właściwości........706
Kompilowanie i rejestrowanie kontrolki. 709
Różne pliki źródłowe...........................709
Tworzenie biblioteki typów
i plików licencji...................................710
Rejestrowanie kontrolki.......................710
Program testujący ActiveX Control Test
Container ............................................. 711
Wybieranie testowanej kontrolki.........711
Testowanie właściwości kontrolki ........711
Obserwowanie uruchomionych zdarzeń .713
Rozdział 27. Korcystanie ze
zintegrowanego debugera...........715
Usuwanie błędów z programu
i narzędzia debugera ............................ 715
Tryby Debug i Relase......................... .715
Opcje trybu Debug i wyświetlane
w nim komunikaty ostrzegawcze ....... .717
Tworzenie i korzystanie z informacji
programu Source Browser.................. .719
Debugowanie przez sieć oraz opcja
Just in time Debugging....................... .722
Makroinstrukcje TRACE, ASSERT
i przeglądanie programu krok po kroku.. 723
Makroinstrukcja TRACE.................... .724
Makroinstrukcje ASSERT
i VERIFY............................................ .727
Punkty kontrolne i przeglądanie kodu
programu krok po kroku..................... .730
Edit and Continue............................... .733
10 Spis treści
Śledzenie zmiennych
programu......... .733 DirectPlay.................................
...........763
Inne okna
debugera............................ .735 DirectInput.............
..............................763
Inne narzędzia
debugowania............... 736 Directsetup........................
..................764
Spy++................................................. .
736 Tworzenie wiadomości i programowanie
Process Viewer................................... .739 obsługi
poczty za pomocą MAPL............ 764
OLE/COM Object Viewer .................. 739 Korzystanie z
prostszej wersji MAPI ..765
MFC Tracer.........................................
740 Dodawanie programu pocztowego
MAPI za pomocą kreatora AppWizard...767
Rozdział 28. Interfejsy API i zestawy
Biblioteki multimedialne i interfejs
SDK.............................................. 741
MCL.....................................................772
Krótkie wprowadzenie API i SDK...... 741 Interfejs multimedialny
MCI...............772
Tworzenie szybkich aplikacji Komunikaty powiadamiające MCL.....776
dźwiękowych i graficznych za pomocą Dodawanie do aplikacji okna
MCI......780
interfejsów DirectX............................. 742
Directsound ........................................ 743
Słownik ..................................................... 785
DirectDraw.......................................... 752
Skorowidz ...........................
799
Direct3D.............................................. 762