Jesteś autorem/wydawcą tego dokumentu/książki i zauważyłeś że ktoś wgrał ją bez Twojej zgody? Nie życzysz sobie, aby podgląd był dostępny w naszym serwisie? Napisz na adres
a my odpowiemy na skargę i usuniemy zabroniony dokument w ciągu 24 godzin.
Zobacz podgląd pliku o nazwie 7019 PDF poniżej lub pobierz go na swoje urządzenie za darmo bez rejestracji. Możesz również pozostać na naszej stronie i czytać dokument online bez limitów.
JON BATES
TIM TOMPKINS
POZNAJ
VISUAL C++ 6
Przek�ad z j�zyka angielskiego:
Marek Korbecki (1-17), S�awomir Dzieniszewski (18-28, s�owniczek)
Najwi�kszemu i najlepszemu ze wszystkich program�w,
genetycznemu kodowi �ycia - DNA.
O
M 1 KO~M�
Polska wersja ok�adki: Grzegorz �awniczak
Redakcja: Justyna Domas�owska-Szulc
Sk�ad komputerowy: Ma�gorzata D�bkowska-Kowalik
O au'
Kolejna ksi��ka z serii �Poznaj..." dotyczy programu Visual C++ 6,
najlepszej,
jak dot�d, wersji kompilatora C/C++ autorstwa firmy Microsoft.
Wpr`
Ksi��ka jest zbiorem u�ytecznych informacji na temat programowania
~"
w
w j�zyku C++, z kt�rego mo�na korzysta� zar�wno wybi�rczo, jak C,
i systematycznie.
Mo�na si� z niej nauczy� wielu nowych funkcji, takich jak
tworzenie aplikacji "'
SDI i MDI, u�ycie wska�nika post�pu, korzystania z list, drzew,
opcji Cz�t
formatowania i podgl�du HTML, tworzenie, importowanie
i edytowanie ikon oraz rysunk�w bitmapowych. Rozd
Ksi��ka powsta�a w oparciu o wieloletnie do�wiadczenie autor�w, kt�rzy
w najbardziej przyst�pny spos�b wyja�niaj� i opisuj� na konkretnych
przyk�adach wszystkie zagadnienia zwi�zane z tworzeniem
nowoczesnych,
wielodokumentowych aplikacji.
Ksi��ka jest adresowana do u�ytkownik�w, kt�rzy maj� ju� pewn� wiedz�
w zakresie programowania w tym j�zyku.
Authorized translation from English language edition published
by QUE CORPORATION
Copyright � 1999. All rights reserved. No part of this book may
be reproduced or transmitted
in any form or any means, electronic or mechanical, including
photocopying, recording or by any
information storage retrieval system, without permission from
the Publisher.
Polish language edition published by Wydawnictwo MIKOM,
Copyright � 1999.
Tytu� orygina�u: Using Visual C++ 6.
Wszystkie prawa zastrze�one. Reprodukcja bez zezwolenia
zabroniona. Wydawca nie ponosi
odpowiedzialno�ci za ewentualne szkody powsta�e przy
wykorzystaniu zawartych w ksi��ce informacji.
Wydawca: MIKOM, ul. Andrzejowska 3, 02-312 Warszawa, tel.
823-70-77 Rozd;
Pr
Druk: Wyd. Archidiecezji Warszawskiej, ul. Rybnicka 27, 02-405
Warszawa. pl
ISBN 83-7158-190-4
Warszawa, sierpie� 1999
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
......................
w se
kons
dow
syste
asse~
razu
nik�
Gdy
lub c
rz�d
zacz
nycl
anal
j�tnc
racy
gie�c
(kor
tem
O autorach
Jon Bates przez ostatnie 15 lat pracowa� nad szeroko zakrojonymi
projektami
w sektorach komercyjnych, przemys�owych i militarnych. Obecnie
jest samodzielnym
konsultantem i programist� specjalizuj�cym si� w tworzeniu
aplikacji dla system�w Win-
dows NT/95 i 98, w j�zyku C++.
Sw� karier� rozpoczyna� od pisania gier dla mikrokomputer�w.
Pracowa� w wielu
systemach operacyjnych, takich jak CPM, DOS, TRIPOS, UNIX i
Windows oraz r�nych
assemblerach, j�zykach trzeciej generacji i zorientowanych
obiektowo.
Napisa� wiele rozmaitych aplikacji dla obs�ugi poczty e-maik
obs�ugi wideo, analizy ob-
razu, obs�ugi sieci i urz�dze� telekomunikacyjnych, system�w
kontrolnych, a tak�e sterow-
nik�w urz�dze�. Opublikowa� r�wnie� kilka artyku��w w pismach
informatycznych.
Jonathan mieszka z �on� Ruth i psem Chaosem w samym �rodku ch�odnej
Brytanii.
Gdy nie pracuje na komputerze, lubi spa� i �ni� sny pe�ne fraktali.
Kontakt z Jonathanem mo�na nawi�za� pisz�c na adres j on@chaosi .
demon . co . uk
lub odwiedzaj�c jego stron� WWW, pod adresem www. chaosl . demon.
co.uk.
Tim Hopkins jest mened�erem do spraw oprogramowania w
europejskiej firmie two-
rz�cej oprogramowanie, specjalizuj�cej si� w opracowywaniu
zintegrowanych system�w
zarz�dzania informacjami. Odpowiedzialny jest za projektowanie i
wdra�anie komercyj-
nych aplikacji, pisanych w j�zyku C++.
Kariera programistyczna Tima rozpocz�a si� w roku 1986 od pisania
aplikacji do
analizy statystycznej dla komputer�w mainframe IBM. Od tamtego
czasu rozwin�� umie-
j�tno�ci i zdoby� do�wiadczenie w u�ywaniu C i C++, pracuj�c z r�nymi
systemami ope-
racyjnymi, takimi jak CPM, DOS, UNIX, XENIX, Windows NT/95 oraz
98.
Tim zaprojektowa� i napisa� wiele aplikacji wspomagaj�cych
planowanie produkcji,
gie�dowych, kosztorysuj�cych oraz kontroluj�cych czas pracy.
Mieszka w zielonej i mi�ej cz�ci Anglii, ze sw� �on� Tracey i jej
koniem Oliverem
(ko� przebywa na zewn�trz domu). Kiedy tylko mo�e, je�dzi swym
sportowym kabriole-
tem (nawet gdy pada deszcz).
Mo�na kontaktowa� si� z Timem pod adresem tinytim@globalnet . co .
uk.
Wx
Podzi�kowania
Specjalne podzi�kowania dla Matta Purcella i Kelly Marshall za
ich nieustaj�ce s�owa
otuchy i wielk� dba�o�� o szczeg�y, co pomog�o nam wykona� t� ci�k� prac�. K
Sk�adamy podzi�kowania r�wnie� Mattowi Buttlerowi, Tonyi
Simpson wszec
Kate Givens
, i funk
oraz Kate Talbot za ich nieocenion� prac� edytorsk� i wskaz�wki, a
tak�e wszystkim
ci�ko pracuj�cym za kulisami MCP ludziom. szybci
szkod:
Dzi�kujemy naszym rodzinom i przyjacio�om za wyrozumia�o��, gdy byli
zaniedbywani
przez kilka ostatnich miesi�cy.
CZyI
Powiedz nam, co my�lisz v
Micrc
Jako czytelnik, jeste� naszym najwa�niejszym krytykiem i
komentatorem. Bardzo ce- wiem
nimy twoj� opini� i chcieliby�my pozna�, co zrobili�my dobrze, co
powinni�my poprawi�, i przy
doda� oraz wszelkie m�dre s�owa, kt�re chcia�by� nam przekaza�. z�o�o~
Jako redaktor naczelny dzia�u programistycznego w Macmillan
Computer Publishing, eleme
oczekuj� na twoje komentarze. Mo�esz przes�a� je faksem, poczt�
elektroniczn� lub zinteg
w formie zwyk�ego listu. Napisz o tym, co ci si� spodoba�o w tej
ksi��ce, a co przeszka- grafie
dza�o. Pomo�e nam to pisa� ksi��ki jeszcze lepsze. zinteg
spraw
Chcia�bym jednak, aby� wiedzia�, i� nie jestem w stanie udziela�
porad technicznych posiai
dotycz�cych tematyki opisanej w niniejszej ksi��ce. Dodatkowo, z
uwagi na ogromn� ilo�� mie, l
przychodz�cej korespondencji, by� mo�e nie b�d� m�g� w og�le
odpowiedzie� na tw�j list.
Gdy zdecydujesz si� napisa� do mnie, koniecznie pami�taj o podaniu
tytu�u oraz na- Cӯ
zwisk autor�w ksi��ki, jak r�wnie� swojego imienia i nazwiska oraz
numeru telefonu lub
faksu. Uwa�nie przejrz� tw�j list, a zawartymi w nim uwagami
podziel� si� z autorami
oraz redaktorami, kt�rzy nad okre�lon� ksi��k� pracowali . opisy
Fax: 317-817-7070 Micrc
mych
E-maik
[email protected] P
Adres pocztowy: Executive Editor Programming r�wni
Macmillan Computer Publishing P
201 West 103N Street czone
aplika
Indianapolis, IN 46290 USA i pysk
Wprowadzenie
Komputery u�ywaj�ce r�nych wersji systemu operacyjnego Windows
sta�y si� po-
wszechnym narz�dziem w domach i biurach na ca�ym �wiecie.
Popularyzacja Internetu
i funkcji multimedialnych powoduje wzrost zapotrzebowania na
r�norodne i silne, coraz
szybciej dzia�aj�ce oprogramowanie. Wygl�da na to, �e wedle obecnej
mody pr�buje si�
szkodzi� firmie Microsoft za jej ogromny sukces.
Czym jest Visual C++ 6.0 i dlaczego warto go u�ywa�?
Visual C++ 6.0 jest ostatni� i najlepsz� jak dot�d wersj�
kompilatora C/C++ autorstwa
Microsoftu. Produkt ten to jednak co� znacznie wi�cej ni� tylko
kompilator. Zawiera bo-
wiem obszern�. bibliotek� Microsoft Foundation Classes, kt�ra
znacznie upraszcza
i przyspiesza tworzenie aplikacji. W bibliotece tej znajduj� si�
narz�dzia do tworzenia
z�o�onych okien dialogowych, menu, pask�w narz�dziowych, obrazk�w i
wielu innych
element�w nowoczesnych aplikacji dla system�w Windows. Zawarte
jest tak�e doskonale
zintegrowane �rodowisko programistyczne, zwane Developer Studio,
kt�re w spos�b
graficzny prezentuje ca�� struktur� aplikacji, ju� w momencie jej
tworzenia. Ca�kowicie
zintegrowane narz�dzie do debugowania (usuwania b��d�w) pozwala na
natychmiastowe
sprawdzenie ka�dego szczeg�u podczas biegu programu. Opr�cz tego,
Visual C++ 6
posiada ogromn� liczb� funkcji umo�liwiaj�cych pisanie aplikacji o
najwy�szym pozio-
mie, przy wykorzystaniu wszelkich stosowanych obecnie technik.
C� nowego jest w tej ksi��ce?
Visual C++ 6 zawiera wiele nowych funkcji, z kt�rych tak du�o jak
by�o to mo�liwe,
opisali�my w niniejszej ksi��ce.
Nowe obiekty steruj�ce, pola wstawiania daty, kt�re znamy z
takich program�w, jak
Microsoft Outlook, s� teraz w zasi�gu r�ki i mog� by� wykorzystywane
w naszych w�a-
snych aplikacjach (zosta�y one opisane w rozdziale 7)
Dzi�ki zastosowaniu rozszerzonych list rozwijanych, listy te mog�
obecnie zawiera�
r�wnie� rysunki, widoczne jako pozycje listy (m�wi o tym rozdzia�
11).
Paski narz�dziowe znane z Microsoft Office 98 lub Internet
Explorera 4, zosta�y w��-
czone do biblioteki Microsoft Foundation Class, a st�d dost�pne s�
r�wnie� dla waszych
aplikacji (mo�ecie o tym przeczyta� w rozdziale 15 o u�ywaniu
pask�w narz�dziowych
i pask�w stanu).
14 Poznaj Visual C++ 6 Wpr
Mo�liwe jest r�wnie� u�ycie Internet Explorera �spod" aplikacji
przez nas napisa- KOII
nych, co umo�liwia przegl�danie stron WWW i kodu HTML (rozdzia�
20).
Pot�ne narz�dzie AppWizard tworzy szeroki wyb�r z�o�onych aplikacji,
w��czaj�c dzy it
w to aplikacje w stylu Windows Explorer, zarz�dzaj�ce kilkoma
widokami jednocze�nie.
Dzia�aj�ca aplikacja powstaje zanim jeszcze umie�cimy w kodzie
programu cho�by jedn� S
lini� (tworzenie aplikacji wielowidokowych opisano w rozdziale
21). �'
Programowanie zorientowane obiektowo oraz mechanizm Distributed
Component
Object Model (DCOM) s� obecnie standardami w tworzeniu
nowoczesnych aplikacji
(m�wimy o nich w rozdziale 26).
Naj�wie�sze wersje bibliotek API oraz SDK, na przyk�ad DirectX
Game SDK, om�-
wione zosta�y w rozdziale 32. .
Opis wszystkich z powy�szych oraz wielu innych funkcji nowego
Visual C++ 6, sta-
nowi w�a�nie tre�� tej ksi��ki.
rzyli
Czy to jest odpowiednia ksi��ka?
Pisz�c t� ksi��k� za�o�yli�my, i� czytelnicy posiadaj� pewn� wiedz� i
do�wiadczenie
z zakresu programowania w j�zyku C++. Niekonieczna przy tym jest
znajomo�� budowy
�rodowiska Windows ani te� biblioteki Microsoft Foundation Class,
ale na pewno b�dzie
pomocna. Czytelnik powinien jednak m�c porusza� si� w systemie
Windows 95/98 lub
NT i jego graficznym interfejsie.
Ksi��ki niniejszej mo�na u�y� jako zbioru podstawowych wiadomo�ci na
temat pro-
gramowania w j�zyku C++, od samego pocz�tku, rozdzia� po rozdziale
lub skorzysta�
jedynie z wybranych rozdzia��w, opisuj�cych konkretny temat.
Tim i ja posiadamy pewne do�wiadczenie w pisaniu kr�tkich
ksi��eczek opisuj�cych
pewne istotne dla programist�w zagadnienia. Postanowili�my
postawi� krok dalej, korzy-
staj�c z w�asnych do�wiadcze� i wyja�niaj�c na konkretnych przyk�adach
pewne problemy
i wymagania stawiane nowoczesnym, komercyjnym aplikacjom.
Czytelnicy wyposa�eni
w t� ksi��k�, naucz� si� pisa� wyszukane aplikacje, u�ywaj�c do tego
celu najbardziej
produktywnego i uniwersalnego �rodowiska programistycznego:
Visual C++ 6.0.
Wprowadzenie 15
Konwencje zastosowane w ksi��ce
Aby zwi�kszy� czytelno�� informacji przedstawionych w ksi��ce,
zastosowano mi�-
dzy innymi nast�puj�ce zasady ich oznaczania:
� S�owa i zwroty u�yte w tek�cie po raz pierwszy wyr�nione s� kursyw�,
a tak�e obja-
�niane w s�owniczku. Wszystkie s�owa, kt�re pojawiaj� si� na ekranie
s� pogrubione.
Skr�ty klawiszowe oraz "gor�ce klawisze" s� oznaczane poprzez
podkre�lenie zna-
cz�cego klawisza.
� Wiersze kodu oraz nazwy klas, kt�re u�yte s� w kodzie, s�
drukowane czcionk� co-
urier.
� Informacje powi�zane z omawianym tematem s� drukowane w ramkach,
�eby nie
zak��ca�y g��wnego toku wypowiedzi i mo�na je by�o �atwo znale��. Ka�da z
tych in-
formacji ma kr�tki tytu�, pomagaj�cy w jej szybkim
zidentyfikowaniu.
�yczymy czytelnikom sukces�w i mamy nadziej�, �e z pomoc� tej ksi��ki
b�d� two-
rzyli udane aplikacje w Visual C++ 6.0.
Cz�� I
Tworzenie aplikacji Visual C++
Rozdzia� l
Projektowanie i tworzenie programu w Visual C++
Generowanie aplikacji dla Windows przy u�yciu AppWizard
Modyfikowanie wygl�du aplikacji przy wykorzystaniu edytora pli-k�w �r�d�owych___________________________
Dodawanie kodu w celu zmiany reakcji aplikacji
Ci, kt�rzy nigdy nie pr�bowali napisa� aplikacji dla Windows s�dz�, �e jest to bardzo ci�kie i �mudne zadanie. Jednak�e odpowiednie narz�dzia sprawiaj�, i� zadanie takie staje si� �atwiejsze, a najlepszym tego rodzaju narz�dziem jest Visual C++ 6. U�ywaj�c go, mo�emy stworzy� dzia�aj�c� aplikacj� dla Windows w mniej ni� minut�, zacz�� jednak powinni�my od nieco wolniejszego tempa.
Inne okre�lenia Visual Studio
Developer Studio jest nazywane r�wnie� Visual Studio. Opr�cz tego mo�na si� spotka� r�wnie� z terminem ID� (Integrated Development Enviroment).
Uruchomienie Visual C++
Aby uruchomi� Visual C++, musimy z menu Start na pasku zada� wybra� Microsoft Visual C++ 6.0. Gdy program zostanie uruchomiony, na ekranie uka�e si� okno Microsoft Visual Studio.
Uruchomienie Visual C++ wywo�uje zatem pojawienie si� okna Visual Studio. Visual Studio jest nazw� nadan� interfejsowi u�ytkownika w Visual C++, a pokazano go na rysunku 1.1. Visual Studio jest w�a�ciwym obszarem roboczym. Gdy widok okna w naszym monitorze nie b�dzie identyczny z zaprezentowanym, nie nale�y si� tym przejmowa�.
20 Poznaj Visual C++ 6
Czytaj�c niniejsz� ksi��k� nauczymy si� jak wywo�ywa� i korzysta� z koniecznych funkcji programu.
Rysunek 1.1. Okno Visual Studio
Tworzenie nowego projektu
Aby rozpocz�� pisanie nowej aplikacji, musimy najpierw utworzy� projekt. Jest on przeznaczony do zarz�dzania wszystkimi elementami sk�adaj�cymi si� na program Visual C++ oraz gotow� aplikacj� Windows. W celu utworzenia nowego projektu wybieramy pozycj� New z menu File. Ukazuj�ce si� w tym momencie okno dialogowe pokazane jest na rysunku 1.2.
Filei PrciecL-
Wo!kspac"s J Othe; Docirnerds, I
^ojset aame;
^BWWff
3 CIu^�ei Re;iJUice T^ Wi;aid ^]Cu-,[omAppWeaid ifIDatabaseProject :: 8iDevSludBAdd-inWi;ard 1: S; Eitended Stmed Proc Wzad 811SAF1 EHlendonWeafd ^Makelh 8SMFCAclivB>:C(mln]f*fctld [gMFCAppWBardlljl) gJMFCAppWiardlene) jS:NfwDalaba"Wizaid nu""Pio|ect <)Wrl32Aililfcatk"l 3Wn32CmsoleAp(fcation 3wn32 D>tiarr";4.inkLtmi" ^^M-ii^jllBtiSal^r 1' -11- - :-' : :":la
.ctsaEion;. : .:
CAProgfam Files'^ic>osoH Vsue J ^ Create new workspace
r �.' .i',:,.,, .� . ; . r i:...:-.-.. .
l d
Wonni:
,-'l'v.'r�2
i:"^:i::::':::::i^|^:^^;fc". �
^s^^aii
| Cancd |
Rysunek 1.2. Okno dialogowe New
Projektowanie i tworzenie programu w Visual C++ 21
Wyb�r rodzaju projektu
Na pocz�tku nale�y okre�li� rodzaj projektu, kt�ry chcemy utworzy�. W tym celu trzeba klikn�� kart� Projects w oknie dialogowym New, o ile nie jest aktualnie wybrana, a na wy�wietlonej li�cie zaznaczy� typ projektu, kt�ry b�dzie tworzony. W przyk�adzie s�u��cym w niniejszym rozdziale b�dzie to MFC AppWizard (exe). Wyb�r tej opcji oznacza, �e owocem naszych dzia�a� b�dzie typowy, wykonywalny program dla Windows.
Do czego s�u�y MFC?
Visual Studio zosta�o wyposa�one w bibliotek� Microsoft Foundation Ciass. Jest to zestaw predefiniowanych klas j�zyka C++. AppWizard tworzy szkielet projektu, u�ywaj�c klas wyprowadzonych z klas MFC. U�ywanie biblioteki MFC jest zilustrowane w�a�nie w niniejszej ksi��ce.
Nadawanie nazwy projektowi i wyb�r lokalizacji
Pole Locatiori s�u�y do ustalenia katalogu dyskowego, w kt�rym umieszczony zostanie projekt. Lokalizacja mo�e pozosta� w tym przyk�adzie niezmieniona.
Lokalizacja bie��ca, wy�wietlana w polu Location, zale�y od naszego wyboru poczynionego podczas instalacji Visual C++. Aby j� zmieni�, musimy wpisa� now� bezpo�rednio w polu lub klikn�� klawisz znajduj�cy si� obok pola. Pozwoli to nam na przejrzenie drzewa katalog�w na dysku i wyb�r jednego z nich. Nazwa katalogu, w kt�rym zostanie umieszczony projekt, wynika z nazwy samego projektu, na przyk�ad: C:\Program Fi-les\Microsoft Visual Studio\My Projects\Minute.
Nadawanie nazw projektom
Swoim projektom mo�na nadawa� nazwy odmienne od sugerowanych tutaj. Aby jednak unikn�� nieporozumie�, wskazane jest u�ywanie tych samych nazw, jakie wyst�puj� w omawianych przyk�adach. W aplikacjach nale�y u�ywa� takich nazw, kt�re okre�laj� czynno�ci wykonywane przez dan� aplikacj�. Obecnej aplikacji nadany zosta� tytu� Minut�, gdy� jak ju� wspomnieli�my wcze�niej, now� aplikacj� mo�na utworzy� w czasie kr�tszym ni� minuta.
U�ywanie AppWizard
Po dokonaniu wszystkich ustawie� w oknie dialogowym New klikamy OK, by rozpocz�� tworzenie nowego projektu. AppWizard rozpocznie ten proces za u�ytkownika. Zadaniem tego kreatora jest utworzenie ko��ca programu, kt�ry nast�pnie b�dziemy rozbu-
22 Poznaj Visual C++ 6
dowywa� o kolejne elementy. Tworzenie szkieletu projektu odbywa si� poprzez wyb�r odpowiedniej klasy spo�r�d Microsoft Foundation Ciass, dla utworzenia wszystkich plik�w koniecznych w projekcie Visual Studio.
PATRZ TAK�E
" Wi�cej szczeg��w dotycz�cych tworzenia aplikacji opartych o okna dialogowe znajduje w rozdziale 3
Korzystanie z podstawowych opcji AppWizard
Okno dialogowe AppWizard (pokazane na rysunku 1.3) pozwala nam wybra� interfejs aplikacji spo�r�d trzech dost�pnych. W projekcie Minut� interfejsem b�dzie okno dialogowe. Nale�y wi�c wybra� opcj� Dialog Based. Mo�liwy jest tak�e wyb�r z rozwijanej listy j�zyka, kt�ry zostanie u�yty w plikach �r�d�owych. W niniejszym przyk�adzie mo�emy pos�u�y� si� bie��cym wyborem.
Wszystkie informacje, kt�rych AppWizard wymaga i kt�re wykorzysta w tworzeniu nowego projektu, s� w tym punkcie ju� ustalone. Nale�y wi�c klikn�� Finish, po czym pojawi si� nowe okno - The New Project Information, jak na rysunku 1.4.
MFC AppWizald Sie� 1
Whdl type ot appficafion wouldyou like to cieate?
f Stf^gle document f Mufcpte docuftients 17 fil*^"1!
f? ;.""".:;1,,/,:.-..-1 -- -
What ianguage wouid you iike youi reiources in? [Engirch [Uniled Sia�e�] [APPAZENU.DLL^
< Ba* l Ma* >
Rysunek 1.3. AppWizard MFC - krok l, ustalaj�cy typ nowego projektu
Okno to zostaje wy�wietlone przez AppWizard w celu zatwierdzenia szczeg��w dotycz�cych tworzonego projektu. Wewn�trz tego okna ujawnione s� nazwy klas u�ytych w projekcie oraz nazwy plik�w, kt�re zostan� utworzone. Z listy tej mo�emy si� dowiedzie� r�wnie� o innych sk�adnikach funkcyjnych, jakie kreator w��czy do projektu. Aby zamkn�� okno The New Project Information, klikamy OK.
Projektowanie i tworzenie programu w Visual C++ 23
New Pioleci Inionoation
AppWizard wH create a new $kefeton ploject w^h the following specificalions:
Applicatt�n t^pe c^ Minut�:
D iatog-B ased Appfcahon targetng:
Win32
Ciasses to be cteated;
Applicafion: CMinuteApp in