1.    Einleitung    5

1.1    Fahrplan    5

2.    Applikationstypen    7

2.1    Konsolen Applikation    8

2.2    QuickWin Applikation    9

2.3    Standard Graphics Applikation    9

2.4    Windows Applikation    10

3.    Die ersten Grundlagen der GUI-Programmierung auf WinAPI-Basis    11

3.1    “Windows sendet Botschaften” - Messages    11

3.1.1    Botschafts-Spionage mit Microsoft Spy++    15

3.2    Die Message Queue    15

3.3    Die Message Loop    15

3.4    “Windows ruft zurück” - Callback Funktionen    16

3.5    Die Window Prozedur    17

3.6    SendMessage - “Windows empfängt Botschaften”    18

3.7    Fenster und Klassen    19

3.7.1    Fenstertypen    21

3.7.2    Fensterkoordinaten und Bezugssystem    23

3.7.3    Fensterbereiche - “valid/invalid Rectangles”    23

3.7.4    Fensterelemente (Controls etc.)    24

3.7.5    Ressourcen    25

3.8    WinMain - das “Hauptprogramm”    26

3.9    Die erste Windows Applikation    27

4.    Windows Applikationen erstellen mit DVF    31

4.1    Der Menü Ressource Editor    32

4.2    Der Dialog Ressource Editor    33

4.3    Ressource Dateien    34

4.4    Kommunikation mit Ressourcen, Controls etc.    35

4.4.1    Zuordnung eines Menüs zu einem Fenster    35

4.4.2    Welche Menüoption wurde ausgewählt?    36

4.4.3    Laden eines Dialog Fensters    37

4.4.4    Dialog Prozeduren und die Message Loop    38

4.4.5    Dialogeingaben ermitteln    39

4.4.5.1    Dialog Fenster - Eingabefelder    40

4.4.5.2    Dialog Fenster - Buttons und andere Controls    41

4.4.6    Beenden eines Dialogs    41

4.5    Beispiel: Eine einfache, aber typische Windows Applikation    42

4.6    Die speziellen Dialogfunktionen von DVF    44

5.    Grundlegende Aufgaben der GUI-Programmierung    46

5.1    Menüs erzeugen und überwachen    46

Zuordnung Menü zum Fenster    47

Handle des Fenstermenüs ermitteln    47

Menüs programmieren    47

5.2    Abkürzungsbefehle (shortcuts)    48

5.2.1    Definition von Accelerators    48

5.3    Ausgabe von Text und Graphik in einem Fenster - GDI Grundlagen    49

5.3.1    Der Gerätekontext (device context)    49

5.3.1.1    Gerätekontexte für die Ausgabe in ein Fenster    50

5.3.1.2    Gerätekontexte für die Ausgabe auf ein beliebiges Gerät    51

5.3.2    Attribute des Gerätekontexts    52

5.3.2.1    Koordinatensystem des Gerätekontexts    52

5.3.2.2    Farbeigenschaften des Gerätekontexts    53

Hintergrund    53

Zeichnen im Vordergrund    54

5.4    Bitmaps darstellen    54

5.5    Beschriftungen    56

5.5.1    Schriftart auswählen    56

5.5.2    Zeichensatz auswählen    57

5.5.3    Textattribute (Zeichenhöhe, Zeichenbreite, Farbe etc.)    57

Zeichenbreite    57

Ausrichtung    58

Farbe    58

5.6    Tastatur - Zeicheneingabe     59

5.7    Textcursor (Caret)    60

5.8    Maus - Eingabe und Mauszeiger (Cursor)    60

5.8.1    Mauszeigerposition    61

5.8.2    Doppelklicks     61

5.9    Ikonen (Icons) - Zuordnung zum Programm bzw. zu Fenstern    62

5.10    Tasten (buttons)    62

5.11    Laufbalken (scrollbars)    64

5.11.1    Laufbalkenskalierung    64

5.11.2    Laufbalkenbotschaften    65

5.12    Eingabefelder (edit boxes)    66

Text laden und auslesen    67

Auf Benutzeraktionen reagieren (Callbacks)    67

5.13    Listenfelder (list boxes)    68

5.14    Combo Boxes    70

5.15    Rich Text Edit Controls    70

5.16    Vorgefertigte Dialoge (common dialogs)    71

5.16.1    Farbauswahl (ChooseColor)    72

5.16.2    Zeichen- und Schriftsatzauswahl (ChooseFont)    73

5.16.3    Dateiauswahl (GetOpenFileName/GetSaveFileName)    73

5.16.4    Druckerauswahl (PrintDlg)    75

5.16.5    Einstellung von Seiteneigenschaften (PageSetupDlg)    77

5.16.6    “Suchen & Ersetzen” (FindText, ReplaceText)    78

5.17    Zeitgeber (Timer)    79

5.18    Drucken    79

6.    Erstellen von DLL Funktionen und ihr Aufruf    80

7.    Graphik unter Windows    81

8.    Starten/Aufruf von externen Programmen    81

9.    Stapelverarbeitung    81

10.    Weitere Werkzeuge und Hilfsmittel    82

11.    Begriffe/Glossar    82

12.    Quellen    84

Index    85

    QT software GmbH,     4