Einfache Windowsprogrammierung

Im folgenden werde ich aufzeigen, wie sich Windows-Anwendungen in der ursprünglichen Form mithilfe der Windows-API erstellen lassen. Anhand einfacher Fensteranwendungen lassen sich dann die grundsätzlichen Elemente einer Windowsanwendung erklären und ausdehnen. Im Abschnitt ATL werden dann diese Anwendungen in die ATL umgesetzt und die hier besprochenen Elemente übersetzt.

Vor Beginn der tatsächlichen Programmierung möchte ich zunächst auf einige Eigenarten eingehen. Die Windows-API definiert eine Vielzahl von Konstanten und deklariert eine Vielzahl von Datentypen in Form von Strukturen ('struct') und einfachen Typdefinitionen ('typedef'). Die Strukturen sind meist spezifisch für bestimmte Funktionen und müssen bei bestimmten Funktionen als Parameter (meist in Form eines Zeigers) übergeben werden. Unter den Datentypen sind insbesondere sogenannte Handles definiert. Zu erkennen sind diese Datentypen an dem 'H' am Anfang des jeweiligen Datentyps (z.B. HINSTANCE, HWND, HDC, HBITMAP, etc.). Sie lassen sich (meist) als einfache Ganzzahlen deuten, die den Zugriff auf bestimmte Objekte erlaubt. Oft verbirgt sich hinter einem Handle bei der C-Programmierung lediglich ein Zeiger auf eine Struktur, welche dem Programmierer allerdings nicht offengelegt wird. Die Einführung eigener Datentypen innerhalb der Windows-API hat mehrere Vorteile: So kann der ursprüngliche Datentyp jederzeit geändert werden (z.B. von einem 32- Bit Wert auf einen 64-Bit Wert oder von 16 Bit auf 32 Bit, wie es übrigens bei der Umstellung von Windows 3.x auf Windows 95 geschehen ist). Außerdem kann man die Datentypen der Sprache entsprechend anpassen. In C entspricht ein Handle meist ein Zeiger auf eine Struktur (meist in Form eines void-Zeigers), wobei bei Sprachen , welche Zeiger nicht unterstützen, diese Art der Reralisierung unmöglich machen.

Auf die Handles werde ich innerhalb der Lektionen noch näher eingehen. Auch andere immer wieder auftretende Datentypen werde ich dann näher erläutern.

In den nächsten Lektionen wird zunächst einmal der generelle Aufbau einer Windowsanwendung beschrieben. Anschließend folgen dann konkrete Beispiele und es wird tiefer auf die Windows-API eigegangen:

Aufbau einer Windowsanwendung
Erstellen von Fenstern
Fensterprozeduren
Die 1. Windows-Anwendung
Ausgaben mit Hilfe der GDI
Anwendung der GDI
Mausnachrichten
Implementierung der Maus
Child-Fenster
Steuerelemente