Botschaftsverarbeitung |
![]() ![]() |
---|
Antwort-Tabellen
Deklaration einer Antworttabelle
Definition einer Antworttabelle
Definition von Antworttabellen-Einträgen
![]() ![]() |
Wenn ein Fenster erstellt wird, erhält dieses eine Fülle von Nachrichten unterschiedlichster Art. Solange wir keine spezielle Behandlung für bestimmte Nachrichten vorsehen, sorgt die OWL automatisch dafür, daß die Nachrichten an die Standardbehandlungsfunktion DefWindowProc weitergegeben werden. Wollen wir bestimmte Botschaften selbst behandeln, müssen wir Programmcode schreiben, der die betreffenden Botschaften bearbeitet und ObjectWindows dazu bewegen, diesen Code aufzurufen, wenn diese Botschaften aufttreten.
ObjectWindows stellt einen speziellen Mechanismus zur Botschaftsbehandlung zur Verfügung. Dieser ist wesentlich flexibler als die Behandlung der Nachrichten mit switch/case Konstrukten, wie sie in normalen Windows-API-Programmen verwendet werden. Das Konzept der Botschaftsbehandlung von ObjectWindows bietet eine Menge von Vorteilen:
Verbesserte Typenprüfung zur Übersetzungszeit
Automatische Botschaftsextrahierung für vordefinierte Kommandobotschaften. Dadurch wird die manuelle Parameterauswertung von LPARAM und WPARAM überflüssig. Zusätzlich wird bei der Extrahierung die Zielplattform (Win16 oder Win32) berücksichtigt.
Möglichkeit der Verwendung einer einzigen Funktion zur Behandlung mehrerer Botschaften.
Unterstützung von Mehrfachvererbung. Jede abgeleitete Klasse kann so auf die Antworttabelle(n) der Basisklasse(n) aufbauen.
Einsatz von sogenannten Antworttabellenmakros zur einfachen Handhabung von Kommandobotschaften, registrierten Botschaften, Benachrichtigungen und benutzerdefinierten Botschaften.
Die Definitionen zur Nachrichtenverarbeitung finden Sie in der Datei BC5\INCLUDE\OWL\WINDOWEV.H.
![]() ![]() |
Zur Nutzung von Antworttabellen sind die folgenden Schritte erforderlich:
Deklaration und Definition der Antwortelementfunktionen
![]() ![]() |
---|
Stand: 25.07.99 17:57:21
© 1998 by Hans Joachim Kiefer, hajokiefer@handshake.de