Visual Studio 2005 Programowanie z Windows API w jezyku C++.pdf
(
381 KB
)
Pobierz
Visual Studio 2005. Programowanie z Windows API w języku C++
Visual Studio 2005.
Programowanie
Autor: Piotr Besta
ISBN: 978-83-246-1567-4
Format: 158x235, stron: 728
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Napisz wĀasne aplikacje dla systemu Windows
¤
Jak tworzyě okna, menu i elementy graficzne?
¤
W jaki sposb zarzĴdzaě zasobami aplikacji?
¤
Jak budowaě aplikacje wielowĴtkowe?
System operacyjny to nie tylko ľrodowisko, w ktrym moŃemy uruchamiaě
zainstalowane programy Ï to takŃe łrdĀo zasobw dla programw tworzonych przez
nas samych. KaŃda aplikacja dla systemu Windows, w ktrej moŃna znalełě ikony,
okna dialogowe, paski przewijania i inne powszechnie znane elementy, korzysta
z bibliotek zwanych Windows API Ï zestawu funkcji uĀatwiajĴcych zaprogramowanie
okreľlonych komponentw. Dziķki zastosowaniu Windows API moŃemy umieszczaě
w naszych aplikacjach typowe dla systemu operacyjnego skĀadniki interfejsu
uŃytkownika i moduĀy wykorzystujĴce urzĴdzenia zewnķtrzne.
KsiĴŃka âVisual Studio 2005. Programowanie z Windows API w jķzyku C++Ò
to podrķcznik, dziķki ktremu poznasz metody tworzenia programw dla systemu
operacyjnego Windows. Nauczysz siķ korzystaě z systemowego API w celu
zaimplementowania w aplikacji mechanizmw interfejsu uŃytkownika, wyľwietlania
elementw graficznych i obsĀugiwania przetwarzania wielowĴtkowego. Dowiesz siķ,
jak wykorzystywaě zasoby programowe, budowaě biblioteki statyczne i biblioteki DLL,
obsĀugiwaě mysz i klawiaturķ oraz mierzyě czas. Przeczytasz o tym, jak dziaĀajĴ aplikacje
dla systemu Windows, i zdobķdziesz wiedzķ niezbķdnĴ do tego, by tworzyě wĀasne!
¤
Tworzenie okien i umieszczanie w nich tekstw oraz elementw graficznych
¤
Korzystanie z GDI
¤
Wyľwietlanie map bitowych
¤
Tworzenie bibliotek statycznych
¤
ObsĀuga klawiatury i myszy
¤
ZarzĴdzanie zasobami aplikacji
¤
Budowanie okien dialogowych
¤
Korzystanie z kontrolek
¤
ObsĀuga wielozadaniowoľci i wielowĴtkowoľci
Poznaj techniki i metody tworzenia aplikacji dla systemu operacyjnego Windows
z Windows API w jķzyku C++
Spis tre!ci
Wst p .............................................................................................. 9
Rozdzia" 1. WinMain — fundament aplikacji Windows ....................................... 11
1.1. Pierwszy program .................................................................................................. 11
1.1.1. Tworzymy projekt aplikacji ......................................................................... 12
1.1.2. Dodajemy do projektu plik kodu .................................................................. 16
1.1.3. Piszemy kod programu ................................................................................. 17
1.1.4. Funkcja MessageBox ................................................................................... 19
1.1.5. Kompilujemy kod i uruchamiamy program ................................................. 22
1.2. Wi#cej o Visual Studio .......................................................................................... 24
1.2.1. Konfiguracja Debug i Release ..................................................................... 24
1.2.2. Biblioteki statyczne ...................................................................................... 26
1.3. Tworzenie okna ..................................................................................................... 27
1.3.1. Klasa okna ................................................................................................... 28
1.3.2. Rejestracja klasy okna .................................................................................. 34
1.3.3. Jak wyrejestrowa% klas# okna? .................................................................... 35
1.3.4. Funkcja CreateWindowEx ........................................................................... 35
1.3.5. Wy'wietlanie okna ....................................................................................... 38
1.3.6. Procedura okna ............................................................................................ 39
1.3.7. Kolejka wiadomo'ci ..................................................................................... 40
1.3.8. P#tla wiadomo'ci ......................................................................................... 40
1.3.9. Definicja procedury okna ............................................................................. 43
1.3.10. Przetwarzanie wiadomo'ci ......................................................................... 45
1.3.11. Wiadomo'ci WM_CREATE i WM_DESTROY ....................................... 46
1.3.12. Projekt: Okno ............................................................................................. 47
Rozdzia" 2. Rysowanie w oknie ........................................................................ 51
2.1. Wiadomo'% WM_PAINT ...................................................................................... 51
2.1.1. Jak uniewa*ni% prostok+tny fragment obszaru roboczego? .......................... 52
2.1.2. Jak zatwierdzi% prostok+tny fragment obszaru roboczego? ......................... 53
2.1.3. Obs,ugiwanie wiadomo'ci WM_PAINT ..................................................... 53
2.2. Kontekst urz+dzenia ............................................................................................... 57
2.2.1. Czym jest kontekst urz+dzenia? ................................................................... 58
2.2.2. W,a'ciwo'ci kontekstu urz+dzenia ............................................................... 58
2.2.3. Pobieranie uchwytu kontekstu urz+dzenia ................................................... 64
2.2.4. Inne operacje na kontek'cie urz+dzenia ....................................................... 65
2.3. Wy'wietlanie tekstu ............................................................................................... 66
2.3.1. Funkcja DrawText ....................................................................................... 67
2.3.2. Wiadomo'ci WM_SYSCOMMAND i WM_CLOSE .................................. 68
2.3.3. Projekt: Tekst w oknie 01 ............................................................................ 71
2.3.4. Pobieranie informacji o czcionce ................................................................. 74
4
Visual Studio 2005. Programowanie z Windows API w j zyku C++
2.3.5. Zmiana domy'lnej czcionki ......................................................................... 77
2.3.6. Tworzenie nowej czcionki ........................................................................... 79
2.3.7. Funkcja TextOut .......................................................................................... 84
2.3.8. Wi#cej okien? .............................................................................................. 85
2.3.9. Niszczenie okna ........................................................................................... 85
2.3.10. Zmiana w,a'ciwo'ci okna .......................................................................... 86
2.3.11. Wiadomo'ci WM_SETFOCUS, WM_KILLFOCUS
i WM_ACTIVATE .................................................................................... 88
2.3.12. Projekt: Tekst w oknie 02 .......................................................................... 90
2.4. Rysowanie pikseli, linii, prostok+tów, kó,, elips i wielok+tów .............................. 99
2.4.1. Rysowanie pikseli ...................................................................................... 100
2.4.2. Rysowanie linii .......................................................................................... 101
2.4.3. Rysowanie prostok+tów ............................................................................. 103
2.4.4. Rysowanie kó, i elips ................................................................................. 105
2.4.5. Rysowanie wielok+tów .............................................................................. 106
2.5. Obiekty GDI ........................................................................................................ 107
2.5.1. Pióra ........................................................................................................... 108
2.5.2. P#dzle ......................................................................................................... 113
2.5.3. Regiony ...................................................................................................... 118
2.5.4. Projekt: Malarz .......................................................................................... 129
2.5.5. Pobieranie aktualnego obiektu kontekstu urz+dzenia ................................. 140
2.6. Bitmapy ............................................................................................................... 141
2.6.1. Czym jest bitmapa? .................................................................................... 142
2.6.2. <adowanie bitmapy do pami#ci operacyjnej .............................................. 143
2.6.3. Przyk,ad u*ycia funkcji LoadImage ........................................................... 146
2.6.4. Pobieranie informacji o za,adowanej bitmapie .......................................... 147
2.6.5. Reprezentacja bitmapy w pami#ci .............................................................. 148
2.6.6. Wy'wietlanie bitmapy ............................................................................... 149
2.6.7. Rysowanie po powierzchni bitmapy .......................................................... 164
2.6.8. Przenoszenie obrazu mi#dzy bitmapami .................................................... 167
2.6.9. Oczekiwanie na wiadomo'% ....................................................................... 171
2.6.10. Wiadomo'ci WM_MOVE i WM_SIZE ................................................... 176
2.6.11. Projekt: Gaz ............................................................................................. 177
2.6.12. Tworzenie w,asnych bitmap .................................................................... 196
2.6.13. Zapisywanie bitmapy do pliku BMP ........................................................ 200
2.6.14. Projekt: Spektrum barw ........................................................................... 217
2.7. Pobieranie informacji o ustawieniach systemu i kontekstu urz+dzenia ................ 228
2.7.1. Informacje o systemie ................................................................................ 228
2.7.2. Informacje o kontek'cie urz+dzenia ........................................................... 231
2.7.3. Zamykanie i resetowanie systemu .............................................................. 232
2.7.4. Praca ze strukturami RECT ........................................................................ 234
Rozdzia" 3. Tworzenie i korzystanie z biblioteki statycznej ............................... 239
3.1. Czym jest biblioteka statyczna? ........................................................................... 239
3.2. Po co tworzymy biblioteki statyczne? .................................................................. 240
3.3. Przyk,ad utworzenia biblioteki ............................................................................ 241
3.3.1. Dodajemy do biblioteki funkcje matematyczne ......................................... 243
3.3.2. Dodajemy do biblioteki klas# CKot ........................................................... 245
3.3.3. Kompilacja biblioteki ................................................................................. 251
3.4. Testowanie biblioteki ........................................................................................... 252
3.4.1. Tworzymy aplikacj# konsolow+ ................................................................ 252
3.4.2. Dodajemy do aplikacji bibliotek# i pliki nag,ówkowe ............................... 256
3.4.3. Piszemy kod programu testowego .............................................................. 258
3.5. Operatory new i delete ......................................................................................... 261
Spis tre$ci
5
Rozdzia" 4. Klawiatura ................................................................................... 267
4.1. Jak to dzia,a w Windows? .................................................................................... 267
4.2. Wirtualne klawisze .............................................................................................. 268
4.3. Wiadomo'ci WM_KEYDOWN i WM_KEYUP ................................................. 270
4.4. Wiadomo'% WM_CHAR ..................................................................................... 273
4.5. Wiadomo'ci WM_SYSKEYDOWN i WM_SYSKEYUP ................................... 275
4.6. Niezale*ne pobieranie informacji o stanie klawiszy ............................................ 276
4.7. Projekt: Klawiatura .............................................................................................. 277
Rozdzia" 5. Mysz ............................................................................................. 285
5.1. Mysz w Windows ................................................................................................ 285
5.2. Kursor myszy ....................................................................................................... 286
5.3. Wiadomo'ci myszy .............................................................................................. 286
5.4. Obs,uga podwójnego klikni#cia ........................................................................... 288
5.5. Niezale*ne pobieranie i ustalanie pozycji kursora myszy .................................... 289
5.6. Przechwycenie myszy .......................................................................................... 290
5.7. Sterowanie wy'wietlaniem kursora ...................................................................... 292
5.8. Projekt: Mysz ....................................................................................................... 293
Rozdzia" 6. Odmierzanie czasu ....................................................................... 301
6.1. Pobieranie systemowego czasu i daty z dok,adno'ci+ do milisekundy ................ 301
6.2. Systemowy licznik milisekund ............................................................................ 303
6.3. Korzystanie z zegara systemowego ..................................................................... 306
6.3.1. Tworzenie w,asnych zegarów .................................................................... 306
6.3.2. Techniki tworzenia zegara ......................................................................... 308
6.3.3. Definiowanie funkcji zegara ...................................................................... 309
6.3.4. U'miercanie zegarów ................................................................................. 309
6.4. Projekt: Minuta .................................................................................................... 310
6.4.1. Dok,adne wyznaczanie rozmiaru okna w oparciu o *+dany rozmiar
obszaru roboczego ..................................................................................... 318
6.5. Specjalistyczne odmierzanie czasu ...................................................................... 320
6.6. Klasa CCzas ......................................................................................................... 323
6.7. Projekt: Stoper ..................................................................................................... 327
6.7.1. Odtwarzanie plików d=wi#kowych WAV za pomoc+ funkcji PlaySound .... 339
Rozdzia" 7. Zasoby aplikacji ........................................................................... 341
7.1. Zarz+dzanie zasobami .......................................................................................... 342
7.2. Projekt: Kursor i ikona ......................................................................................... 342
7.2.1. Kursory ...................................................................................................... 343
7.2.2. Ikony .......................................................................................................... 350
7.2.3. Odwo,ywanie si# do zasobów .................................................................... 352
7.2.4. Piszemy kod dla projektu „Kursor i ikona” ................................................ 353
7.3. Zmiana i pobieranie ustawie@ klasy okna ............................................................ 358
7.4. Projekt: Bitmapa i ,a@cuchy znaków .................................................................... 360
7.4.1. Bitmapy ...................................................................................................... 360
7.4.2. Tablice ,a@cuchów znakowych .................................................................. 362
7.4.3. Piszemy kod dla projektu Bitmapa i ,a@cuchy znaków .............................. 365
7.5. Wysy,anie wiadomo'ci do okna .......................................................................... 373
7.6. Projekt: G,ówne menu okna ................................................................................. 375
7.6.1. Jak zbudowane jest menu? ......................................................................... 375
7.6.2. Elementy menu .......................................................................................... 376
7.6.3. Tworzenie menu za pomoc+ edytora .......................................................... 376
7.6.4. <adowanie menu z zasobów i pod,+czanie do okna ................................... 381
7.6.5. Niszczenie menu ........................................................................................ 383
7.6.6. Wiadomo'ci okna zwi+zane z menu .......................................................... 383
6
Visual Studio 2005. Programowanie z Windows API w j zyku C++
7.6.7. Zaznaczanie elementów menu ................................................................... 386
7.6.8. Radiowe elementy menu ............................................................................ 388
7.6.9. Sterowanie dost#pno'ci+ elementów menu ................................................ 389
7.6.10. Pobieranie uchwytu g,ównego menu i uchwytów podmenu .................... 390
7.6.11. Pobieranie informacji o stanie elementu menu ......................................... 391
7.6.12. Piszemy kod dla projektu „G,ówne menu okna” ..................................... 393
7.6.13. Tworzenie menu w trakcie pracy programu ............................................. 401
7.6.14. Modyfikowanie menu w trakcie pracy programu ..................................... 405
7.6.15. Wy'wietlanie elementu menu za pomoc+ bitmapy .................................. 413
7.6.16. Zmieniamy bitmap# zaznaczenia elementu menu .................................... 415
7.6.17. Inne operacje przeprowadzane na elementach menu ................................ 416
7.7. Projekt: Menu kontekstowe i systemowe ............................................................. 418
7.7.1. Menu kontekstowe ..................................................................................... 418
7.7.2. Menu systemowe ....................................................................................... 422
7.7.3. Piszemy kod dla projektu „Menu kontekstowe i systemowe” .................... 424
7.8. Projekt: Skróty klawiaturowe ............................................................................... 431
7.8.1. Tworzenie tablicy skrótów klawiaturowych .............................................. 432
7.8.2. <adowanie tablicy skrótów klawiaturowych .............................................. 434
7.8.3. Tworzenie tablicy skrótów klawiaturowych w trakcie pracy programu ..... 435
7.8.4. T,umaczenie skrótów klawiaturowych na wiadomo'ci
WM_COMMAND i WM_SYSCOMMAND ............................................ 437
7.8.5. Piszemy kod dla projektu „Skróty klawiaturowe” ..................................... 439
7.9. Projekt: Niestandardowe zasoby .......................................................................... 447
7.9.1. Tworzenie niestandardowych zasobów ...................................................... 448
7.9.2. <adowanie niestandardowych zasobów ..................................................... 450
7.9.3. Odczytywanie danych z niestandardowych zasobów ................................. 451
7.9.4. Piszemy kod dla projektu „Niestandardowe zasoby” ................................. 452
7.10. Biblioteka ,+czona dynamicznie jako zewn#trzne =ród,o zasobów i kodu ........... 456
7.10.1. Jak dzia,aj+ biblioteki DLL? .................................................................... 456
7.10.2. Projekt: Pierwszy DLL ............................................................................. 457
7.10.3. DllMain — g,ówna funkcja biblioteki DLL ............................................. 459
7.10.4. Dodajemy do biblioteki DLL funkcj# ...................................................... 461
7.10.5. Dodajemy do biblioteki DLL zmienne ..................................................... 466
7.10.6. Kompilacja i konsolidacja biblioteki DLL ............................................... 467
7.10.7. Wspó,u*ytkowanie zmiennych biblioteki DLL przez wiele aplikacji ...... 467
7.10.8. <adowanie biblioteki DLL w trakcie pracy programu i pobieranie
adresów funkcji ....................................................................................... 470
7.10.9. Umieszczanie zasobów w bibliotece DLL i ich wykorzystywanie .......... 472
7.10.10. Projekt: Test biblioteki DLL .................................................................. 473
7.11. Szerokie znaki — UNICODE .............................................................................. 478
7.11.1. Typ danych char ....................................................................................... 479
7.11.2. Typ danych wchar_t ................................................................................. 481
7.11.3. Ogólny znakowy typ danych .................................................................... 483
7.11.4. Szerokie znaki i funkcje ........................................................................... 485
Rozdzia" 8. Okna dialogowe ........................................................................... 489
8.1. Modalne okna dialogowe ..................................................................................... 491
8.2. Projekt: Modalne okno dialogowe ....................................................................... 491
8.2.1. Dodajemy do zasobów programu okno dialogowe .................................... 491
8.2.2. Procedura okna przetwarzaj+ca wiadomo'ci okna dialogowego ................ 495
8.2.3. Wiadomo'% WM_INITDIALOG ............................................................... 497
8.2.4. Przesuwanie okna i pobieranie uchwytu okna nadrz#dnego ...................... 498
8.2.5. Tworzenie, wy'wietlanie i zamykanie modalnego okna dialogowego ....... 499
8.2.6. Piszemy kod dla projektu „Modalne okno dialogowe” .............................. 501
Plik z chomika:
bomaszko
Inne pliki z tego folderu:
Visual Studio 2005 Programowanie z Windows API w jezyku C++.pdf
(381 KB)
Microsoft Visual Studio 2008 Ksiega eksperta.pdf
(2197 KB)
Microsoft Visual Studio 2005 Ksiega eksperta.pdf
(401 KB)
Microsoft Visual C 2005 Ksiega eksperta.pdf
(417 KB)
100 sposobow na Visual Studio.pdf
(1299 KB)
Inne foldery tego chomika:
_ Basic _ QBasic ---
_ DOS _---
_ EDYTORY - IDE - GUI
_ EMULATORY - interpretery
_ LITERATURA
Zgłoś jeśli
naruszono regulamin