API-Funktion GetMessage(...)

Durch den Aufruf der Funktion GetMessage(...) wartet eine Anwendung auf das Eintreffen einer Nachricht. Bis eine Nachricht eintrifft bleibt die Anwendung inaktiv, d.h. sie wird suspendiert.

GetMessage(....) hat folgendes Prototyping:

BOOL GetMessage( LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);

Die Parameter haben folgende Bedeutung:

Parameter

Bedeutung

LPMSG lpMsg Zeiger auf die unten aufgeführte Nachrichtenstruktur. Diese Struktur wird durch die Funktion entsprechend ausgefüllt.
HWND hWnd Handle des Fensters, für das die Nachricht ausgelesen werden soll. Wird für diesen Parameter der Wert NULL angegeben, wird die Nachricht für alle Fenster der Anwendung ausgelesen.
UINT wMsgFilterMin ID der Nachricht, ab der Nachrichten ausgelesen werden sollen.
UINT wMsgFilterMax ID der Nachricht, bis zu der Nachrichten ausgelesen werden sollen. Wird für wMsgFilterMin und wMsgFilterMax der Wert 0 angegeben, so werden alle Nachrichten ausgelesen

Die durch die Funktion ausgefüllte Nachrichtenstruktur hat folgenden Aufbau:

typedef struct tagMSG {
    HWND hwnd;     // Empfänger der Nachricht
    UINT message;  // die Nachricht
    WPARAM wParam; // 1. Zusatzinfo zur Nachricht
    LPARAM lParam; // 2. Zusatzinfo zur Nachricht
    DWORD time;    // Systemzeit beim Auftreten der Nachricht
    POINT pt;      // Mausposition beim Auftreten der Nachricht
} MSG;

Wird für hWnd ein Wert ungleich NULL angegeben, so liest die Funktion auch Nachrichten an Child-Windows von hWnd aus. Den Child-Windows ist ein gesondertes Kapitel im Kurs gewidmet.

Zur Bestimmung des auszulesenden Nachrichtenbereichs sind 4 Konstanten definiert, WM_KEYFIRST, WM_KEYLAST, WM_MOUSEFIRST und WM_MOUSELAST mit deren Hilfe Tastatur- und Mausnachrichten herausgefiltert werden können.

Als Returnwert liefert die Funktion TRUE zurück wenn keine WM_QUIT Nachricht ausgelesen wurde. Die WM_QUIT Nachricht wird immer dann versandt, wenn die Anwendung beendet werden soll. Dieser Returnwert spielt in der später im Kurs beschriebenen Nachrichtenschleife der Anwendung eine wichtige Rolle. Im Fehlerfall (z.B. falsches Fenster-Handle als Parameter angegeben) liefert die Funktion '-1' zurück (BOOL lässt grüßen!).



Copyright © 2004

Senden Sie Emails mit Fragen oder Kommentaren zu dieser Website an: mailto:info@cpp-tutor.de
 Wolfgang Schröder, Lerchenweg 23, D-72805 Lichtenstein. Tel: +49 7129 6470