lehrerbibliothek.deDatenschutzerklärung
Windows Programmierung Das Entwicklerhandbuch zur WIN32- API
Windows Programmierung
Das Entwicklerhandbuch zur WIN32- API




Charles Petzold

Microsoft Press
EAN: 9783860634875 (ISBN: 3-86063-487-9)
1368 Seiten, paperback, 19 x 24cm, 2000, mit CD-ROM

EUR 59,90
alle Angaben ohne Gewähr

Umschlagtext
- Der definitive Führer zur Win32 API-Programmierung

- Das klassische Programmierhandbuch zu Windows




"Schau mal im Petzold nach" ist nach wie vor die ultimative Antwort in Sachen Windows-Programmierung. Mit der stark überarbeiteten und wesentlich erweiterten 5. Auflage liegt dieses Standardwerk für die Programmierung der Win32-API nun in einer Form vor, die alle neueren Versionen von Windows abdeckt. Programmierer unter Windows 95, 98 und NT 4 finden hier das aktuellste Wissen um den Umgang mit den von Windows zur Verfügung gestellten Programmierschnittstellen. Dabei bleibt das Buch das, was es schon immer gewesen ist: das umfassende Lehr- und Nachschlagewerk für die Kernstücke der Windows-Programmierung. Kein Windows-Programmierer sollte auf dieses Buch verzichten.



Lesen Sie:

- Eine Einführung in Unicode

- Fenster und Nachrichten

- GDI: Die Grundlagen

- Keyboard, Maus und Tastatur

- Steuerelemente

- Menüs und andere Ressourcen

- Dialogfelder und die Zwischenablage

- Bitmaps und der Paletten-Manager

- Text und Schriftarten

- Das Multiple Document Interface

- Multitasking und Multithreading

- DLLs

- Sound und Musik

- Windows Sockets und FTP



Auf Begleit-CD:

- Beispielcode und .EXE-Dateien für alle im Buch beschriebenen Anwendungen

- Das englische Original des Buchs "Programming Windows- 5th ed." als elektronisches Buch



Der Autor:

Charles Petzold ist eine der bekanntesten Koryphäen im Bereich der Windows-Programmierung und eine von nur sieben Personen, die jemals mit dem "Windows Pioneer Award" des Windows Magazine und der Microsoft Corporation ausgezeichnet wurden.



Ein Buch für:

Alle Windows-Programmierer
Rezension
“Das definitive Buch über Windows-Programmierung ist, wie sollte es anders sein, Charles Petzold’s.”
Dr. Dobb’s Journal

“Wenn Sie für Windows programmieren wollen, dann kaufen Sie dieses Buch. Es macht sich in wenigen Stunden bezahlt.”
Computer Language
Inhaltsverzeichnis
Eine kurze Anmerkung XVII

Teil I
Die Grundlagen 1

1 Der Einstieg 3

Windows im Überblick 4
Die Geschichte von Windows 4
Konzepte im Schnellgang 6
Dynamische Bibliotheken 8
Zur Programmierung 9
APIs und Speichermodelle 10
Programmiersprachen und -systeme 11
Die Entwicklungsumgebung 12
Dokumentation 13
Das allererste Windows-Programm 14
Die textuelle Variante 14
Die Windows-Version 15
Include-Dateien 16
Der Einsprungpunkt des Programms 17
Die Funktion MessageBox 19
Compilieren, Binden und Start 20

2 Unicode 23
Zeichensätze: eine kurze Geschichte 24
Amerikanische Standards 24
Der Rest der Welt 25
Erweitertes ASCII 26
Multibyte-Zeichensätze 28
Der Retter naht 29
Breite Zeichencodes und C 30
Der Datentyp char 31
Breitere Zeichen 31
Bibliotheksfunktionen 33
Ein Quelltext, mehrere Zeichenbreiten 34
Breite Zeichencodes und Windows 35
Include-Dateien 36
Aufrufe von Windows-Funktionen 37
Stringfunktionen von Windows 39
Formatierte Ausgaben über printf 39
Ein Meldungsfenster mit formatiertem Text 42
Internationalisierung 43

3 Fenster und Nachrichten 45
Jedem sein eigenes Fenster 45
Die Architektur im Überblick 46
Das Programm HELLOWIN 47
Allgemeinplätze 50
Registrieren der Fensterklasse 55
Das Anlegen des Fensters 61
Darstellen des Fensters 63
Die Ereignis-Warteschleife 63
Die Window-Prozedur 65
Bearbeiten von Nachrichten 66
Das Abspielen einer Audiodatei 66
WM_PAINT 67
WM_DESTROY 69
Die Hürden bei der Programmierung 69
Herzlichen Dank, wir rufen zurück! 70
Nachrichten innerhalb und außerhalb der Warteschlange 71
Umschaltung zwischen Prozessen 73

4 Textausgaben unter der Lupe 75
Zeichnen und Neuzeichnen 76
WM_PAINT 76
Gültige und ungültige Rechtecke 77
Ein erster Blick auf die GDI 78
Der Gerätekontext 78
Ermitteln des Gerätekontexts: Methode Nummer 1 79
Die Zeicheninformationen 80
Ermitteln des Gerätekontexts: Methode Nummer 2 82
Einige Details zur Funktion TextOut 83
Die Systemschrift 85
Zeichengrößen 85
Zeichenmaße im Detail 86
Formatierte Ausgaben 87
Ein Programm als Ergebnis 89
Die Window-Prozedur von SYSMETS1 95
Platzprobleme 97
Die Größe des Anwendungsbereichs 97
Bildlaufleisten 98
Positionen und Wertebereiche 100
Nachrichten für Bildlaufleisten 101
Die nächste Version von SYSMETS 103
Strukturierte Programmierung für Ausgaben 107
Ein effizienteres Verfahren 108
Geht es auch ohne Maus? 117

5 GDI: Die Grundlagen 119
Die Struktur der GDI 119
Die Philosophie 119
GDI-Funktionen 121
Primitiva 122
Drumherum 123
Der Gerätekontext 124
Ermitteln des Handles 124
Daten im Gerätekontext 127
Das Programm DEVCAPS1 127
Die Größe der Zeichenfläche 130
Farbeigenschaften 136
Attribute des Gerätekontexts 138
Attribute speichern 139
Punkte und Linien 141
Pixel 141
Linien 142
Das umschließende Rechteck 147
Bezierkurven 153
Vordefinierte Zeichenstifte 158
Eigene Zeichenstifte 159
Lückenbüßer: der Linienhintergrund 163
Zeichenmodi 163
Ausgefüllte Flächen 165
Die Funktion Polygon und ihre Füllmodi 166
Füllmuster 171
Koordinatensysteme 173
Gerätekoordinaten und logische Koordinaten 175
Systeme für Gerätekoordinaten 175
Fenster und Zeichenfenster 176
Der Modus MM_TEXT 178
Metrische Systeme 181
Koordinatensysteme im Eigenbau 184
Das Programm WHATSIZE 190
Rechtecke, Bereiche und Clipping 193
Zusätzliche Funktionen für Rechtecke 193
Unendliche Geschichten 195
Anlegen und Zeichnen von Regionen 199
Clipping mit Rechtecken und Regionen 201
Das Programm CLOVER 202

6 Die Tastatur 207
Grundlagen 207
Ignorieren von Eingaben 208
Im Brennpunkt: Die Eingabe 208
Warteschlangen und Synchronisation 209
Tastendrücke und Zeichen 210
Tastennachrichten 210
Systemtasten und der Rest der Welt 211
Virtuelle Tastencodes 211
Der Parameter lParam 215
Modifizierer 217
Die Auswertung 218
Eine Tastaturschnittstelle für SYSMETS 219
Zeichennachrichten 226
Die vier Nachrichtentypen 226
Die Reihenfolge 227
WM_CHAR im Detail 229
»Tote« Zeichen (Akzente) 230
Tastaturereignisse und Zeichensätze 230
Andere Länder, andere Tastaturen 235
Zeichensätze und Schriften 237
Unicode 246
TrueType und große Zeichensätze 248
Das Caret (und nicht der Cursor) 254
Caret-Funktionen 254
Das Programm TYPER 255

7 Die Maus 263
Grundlagen 264
Etwas Terminologie 265
Mausereignisse im Anwendungsbereich 265
Ein einfaches Beispiel 267
Auswerten von Modifizierern 271
Doppelklicks 273
Ereignisse außerhalb des Anwendungsbereichs 273
Getroffen oder daneben? 275
Nachrichten und ihre Kinder 276
Trefferprüfung in eigenen Programmen 276
Ein hypothetisches Beispiel 277
Zur Praxis 277
Simulation der Maus über die Tastatur 280
Eine Tastaturschnittstelle für CHECKER 282
Child-Fenster für Trefferprüfungen 286
Child-Fenster in CHECKER 286
Einfangen der Maus 296
Das Programm BLOKOUT1 297
Fallensteller 301
Das Mausrädchen 304
Was jetzt noch fehlt 311

8 Der Timer 313
Grundlagen 314
Interrupts und der Timer Tick 314
Drei Methoden für den Timer 315
Erste Methode 315
Zweite Methode 319
Dritte Methode 322
Fast schon unvermeidlich: Eine Uhr 322
Die digitale Variante 323
Datum und Uhrzeit 327
Die Darstellung der Ziffern 328
Internationales 328
Ein analoges Gegenstück 330
Aktualisieren von Statusmeldungen 335

9 Steuerelemente 339
Krieg der Knöpfe 341
Anlegen von Steuerelementen 344
Nachrichten an das Hauptfenster 346
Nachrichten an die Steuerelemente 347
Schaltflächen 348
Kontrollkästchen 349
Optionsfelder 351
Gruppenrahmen 351
Ändern der Beschriftung 351
Sichtbare vs. angeschaltete Steuerelemente 352
Steuerelemente und der Eingabefokus 353
Farben 354
Systemfarben von Windows 354
Farben von Steuerelementen 356
WM_CTLCOLORBTN 357
Selbstgezeichnete Schaltflächen 358
Statische Elemente 364
Bildlaufleisten 365
Das Programm COLORS1 367
Die automatische Tastaturschnittstelle 373
Fenster-Unterklassen 374
Die Farbe des Hintergrundes 374
Die Farben der Bildlaufleisten 376
Editfenster 377
Varianten 379
Nachrichten an das Hauptfenster 380
Mehrere Editfenster und der Eingabefokus 381
Nachrichten an Editfenster 381
Listenfenster 382
Varianten 383
Einsetzen von Elementen 384
Die Arbeit mit Einträgen 385
Nachrichten von Listenfenstern 387
Eine einfache Anwendung 388
Dateilisten 391
Das Programm HEAD 393

10 Menüs und andere Ressourcen 399
Icons, Cursorformen, Strings und selbstdefinierte Ressourcen 400
Definition von Ressourcen 400
Icons mit Griff 405
Icons im Einsatz 408
Selbstdefinierte Cursorformen 409
Stringressourcen 410
Selbstdefinierte Ressourcen 413
Menüs 420
Das Konzept 421
Die Struktur 422
Definieren von Menüs 422
Einbinden von Menüs 423
Nachrichten 424
Ein erstes Beispiel 427
Ein kurzer Menü-Knigge 433
Menüs auf die harte Tour 434
Menüs auf beliebigen Positionen 436
Erweiterungen des Systemmenüs 440
Ändern des Menüs 443
Weitere Menüfunktionen 444
Ein unorthodoxer Ansatz 446
Abkürzungsbefehle (»Shortcuts«) 450
Unterschiede zu WM_KEYDOWN 450
Einige Regeln 451
Die Definition von Abkürzungsbefehlen 451
Laden der Abkürzungsbefehle 452
Umsetzen von Tastatureingaben 452
Bearbeiten der Nachrichten 454
POPPAD im neuen Gewand 455
Manipulation von Menüpunkten 460
Bearbeitungsfunktionen 461
Erweiterungen 463

11 Dialogfelder 465
Modale Dialogfelder 466
Ein Dialog für »Info über « 466
Dialog-Prototypen 470
Die Dialogprozedur 473
Aufruf des Dialogs 475
Einige Details zum Thema »Fensterstil« 476
Steuerelemente 478
Ein komplexerer Dialog 480
Die Kommunikation mit Steuerelementen 486
»OK« und »Abbrechen« 489
Geht’s auch ohne globale Variablen? 491
Gruppen und die Tab-Taste 492
Zeichenoperationen in einem Dialog 494
Andere Funktionen und Dialogfelder 495
Selbstdefinierte Steuerelemente 495
Moduslose Dialoge 501
Die Unterschiede 502
Eine neue Variante von COLORS 504
HEXCALC: Fenster oder Dialog? 509
Optimierung von Kennziffern 515
Die Standard-Dialogfelder 516
Eine neue Version von POPPAD 517
Dateioperationen und Unicode 536
Schriftarten 537
Suchen und Ersetzen 538
COLORS3: Ein Minimalprogramm 538

12 Die Zwischenablage 541
Grundlagen 542
Die Standard-Datenformate 542
Der globale Heap 544
Einsetzen von Text 546
Auslesen von Text 547
Das Funktionsprinzip 549
Öffnen und Schließen der Zwischenablage 549
Unicode in der Zwischenablage 550
Erweiterungen des Konzepts 555
Mehrere und verschiedene Datenblocks 555
Verzögerte Übergabe 557
Eigene Datenformate 558
Ein Ersatz für CLIPBRD.EXE 561
Nachrichtenketten 561
Funktionen und Nachrichten 562
Ein einfaches Beispiel 564

Teil II
Noch mehr Grafik 567

13 Der Drucker 569

Ausgaben und der Druckerspooler 570
Gerätekontexte für Drucker 574
Eine erweiterte Version von DEVCAPS 576
Die Funktion PrinterProperties 585
BitBlt oder nicht? 586
Das Programm FORMFEED 587
Grafiken und Text 588
Drucken in einfachster Form 591
Abbruchprozeduren 593
Nachrichten und unerwünschte Rekursion 595
Abbruchdialoge 597
Druckfunktionen für POPPAD 602

14 Bitmaps und BitBlts 609
Grundlagen 610
Huhn oder Ei? 610
Bitmap-Größen 611
Farbtiefe 612
Etwas Geschichte 613
Unterstützung durch die GDI 616
Bit-Blocktransfers 617
Ein einfaches Beispiel 617
StretchBlt: Bitmaps auf der Streckbank 621
Skalierung 624
Raster-Operationen 625
Die Funktion PatBlt 627
Koordinaten-Angaben, die zweite 629
Bitmaps als GDI-Objekte 630
Definition von Bitmaps in einem Programm 631
Speicherkontexte 634
Bitmap-Ressourcen 636
Das monochrome Bitmap-Format 640
Bitmaps als Füllmuster 643
Zeichenoperationen in Bitmaps 645
Zeichenoperationen im Hintergrund 650
Bitmaps in Menüs 655
Jenseits rechteckiger Formen 668
Animation 674
Bitmaps außerhalb von Fenstern 677

15 Geräteunabhängige Bitmaps 687
Das DIB-Dateiformat 688
DIBs im Stil von OS/2 688
Kopfstand! 691
Pixeldaten 692
Das erweiterte DIB-Format von Windows 693
Zurück auf den Teppich 696
Komprimierungsschemata 698
Farbmasken 700
DIB-Kopfinformationen für die Windows-Version 4 704
Microsofts Fünfte 708
Darstellen von DIB-Informationen 710
Darstellen und Drucken 717
Grabungsarbeiten 717
Pixel pro Pixel 720
Die durchgeknallte Welt der DIBs 728
Sequentielle Darstellung 736
Bits auf der Streckbank 743
Farbumrechnungen, Paletten und Performance 753
DIBs und DDBs vereint 754
Von DIBs zu DDBs 755
Von DDBs zu DIBS 762
DIB Sections 763
Und noch ein paar Unterschiede 770
Speicherbasierte Dateien 772
Kurz zusammengefaßt 773

16 Der Paletten-Manager 775
Paletten 776
Grafik-Hardware 776
Graustufen 778
Nachrichten 786
Palettenindizes 787
Palette oder nicht? 790
Die Systempalette 791
Und noch ein paar Palettenfunktionen 792
Raster-Operationen – eine Problemzone 793
Ein Blick auf die Systempalette 794
Palettenanimation 804
Ein springender Ball 805
Animation mit einem einzigen Eintrag 812
Prozeßkontrolle 816
Bilder aus der realen Welt 821
Paletten und gepackte DIBs 821
Eine Allzweck-Palette 831
Halbton-Paletten 836
Farbtabellen mit Palettenindizes 841
Paletten und geräteabhängige Bitmaps 846
Paletten und DIB Sections 852
Eine Bibliothek für DIBs 857
Der Strukturtyp DIBSTRUCT 858
Informationsfunktionen 860
Lesen und Schreiben von Pixeln 867
Anlegen und Konvertieren von DIBs 871
Include-Dateien und Makros 882
Das Programm DIBBLE 884
Einfache und optimierte Paletten 906
Konvertierung von Formaten 920

17 Text und Schriftarten 925
Einfache Textausgaben 925
Funktionen und Formatierung 926
Text-Attribute im Gerätekontext 929
Vordefinierte Schriften 930
Einige Grundlagen 931
GDI- und Geräteschriften 931
TrueType 933
Attribute oder verschiedene Schriften? 934
Punktgrößen 935
Durchschuß und Spazierung 935
Logische Zollgrößen 937
Logische Schriften 938
Das Programm PICKFONT 940
Der Datentyp LOGFONT 952
Die Logik der Zuordnung 956
Abfragen der Schrift 958
Zeichensätze und Unicode 960
Das EZFONT-System 961
Gedrehte Schriften 969
Abfrage verfügbarer Schriften 971
Der Standarddialog zur Schriftauswahl 972
Formatierte Ausgaben 981
Einfache Textformatierung 981
Formatieren von Absätzen 983
WYSIWYG 991
Spielereien und Tricks mit Schriften 1002
Pfade 1002
Erweiterte Zeichenstifte 1004
Vier Beispielprogramme 1007

18 Zwischendateien 1015
Das alte Format 1016
Zwischendateien im Hauptspeicher 1016
Zwischendateien auf der Festplatte 1020
Zwischendateien alten Stils und die Zwischenablage 1021
Erweiterte Zwischendateien 1025
Ein einfaches Programm 1025
Zwischendateien im Detail 1029
Zwischendateien und GDI-Objekte 1035
Zwischendateien und Bitmaps 1040
Abzählen von Datensätzen 1043
Einbetten von Bildern 1050
Darstellen und Drucken 1053
Exakte Darstellung 1063
Skalierung und Breiten-/Höhenverhältnisse 1072
Koordinatensysteme 1074

Teil III
Für Fortgeschrittene 1081

19 MDI: Ein Programm, mehrere Dokumente 1083

MDI-Konzepte 1083
Elemente eines MDI-Programms 1083
Zur Programmierung 1085
Ein MDI-Programm 1086
Die Menüs 1096
Die Initialisierung des Programms 1097
Anlegen von Dokumentenfenstern 1099
Weitere Nachrichten an das Rahmenfenster 1099
Die Dokumentenfenster 1101
Aufräumarbeiten 1102

20 Multitasking und Multithreading 1103
Arten des Multitasking 1104
Multitasking unter DOS? 1104
Kooperatives Multitasking 1104
Serialisierung im Presentation Manager 1106
Multithreading als Lösung 1106
Programmarchitektur für Multithreading 1107
Fallstricke 1108
Nachrichtenserialisierung bei Windows 1109
Neu! Besser! Mit Threads! 1110
Multithreading unter Windows 1110
Zufällige Rechtecke – noch einmal anders 1111
Die Problemstellung des Programmierwettbewerbs 1114
Die Multithread-Lösung 1121
Seiteneffekte 1129
Die Funktion Sleep 1130
Synchronisation von Threads 1130
Der kritische Abschnitt 1131
Signalisieren von Ereignissen 1133
Das Programm BIGJOB in zwei Varianten 1133
Ereignisobjekte 1137
Threadlokale statische Variablen 1142

21 Dynamische Bibliotheken 1145
Grundlegendes zu Bibliotheken 1145
Bibliothek: Ein Wort mit vielen Bedeutungen 1146
Eine einfache DLL 1147
Aufrufe der Funktion DllMain 1150
Das Testprogramm 1151
Gemeinsam genutzte Speicherbereiche in DLLs 1154
Das Programm STRPROG 1159
Gemeinsame Nutzung von Daten 1164
Einige weitere Details zu DLLs 1165
Dynamisches Binden ohne Import 1165
Reine Ressourcenbibliotheken 1166

22 Sound 1171
Windows und Multimedia 1171
Multimedia-Hardware 1171
Die Multimedia-API im Überblick 1172
Der erste Kontakt mit MCI 1173
MCITEXT und CD-Audio 1177
Waveform-Audio 1182
Klang als Wellenform 1182
Pulscode-Modulation 1183
Die Abtastfrequenz 1184
Die Abtastauflösung 1184
Sinustöne per Software 1185
Digitaler Audiorecorder 1195
MCI, die Alternative 1205
MCI-Kommandostrings 1213
Das WAV-Dateiformat 1216
Experimente mit additiver Klangsynthese 1218
Wenn der Wecker zweimal klingelt 1226
MIDI und Musik 1233
Wie arbeitet MIDI? 1234
Instrumentenwechsel 1235
Der MIDI-Kanal 1236
MIDI-Kommandos 1237
Abspielen von MIDI-Sequenzen 1239
PC-Tastatur als Keyboard für den MIDI-Synthesizer 1245
Ein MIDI-Sequenzer für Schlaginstrumente 1260
Die time-Funktionen der Multimedia-API 1279
RIFF-Dateien schreiben und lesen 1282

23 Ein Blick ins Internet 1285
Windows Sockets 1285
Sockets und TCP/IP 1286
Im Internet nach der Zeit fragen 1286
Das Programm NETTIME 1287
WinInet und FTP 1299
Überblick über die FTP-API 1300
Das FTP-Programm UPDDEMO 1301

Stichwortverzeichnis 1313