API-Funktion PeekMessage(...)

Durch den Aufruf der Funktion PeekMessage(...) kann eine Anwendung abprüfen, ob eine Nachricht für sie vorliegt. Die Funktion kehrt immer sofort wieder zurück, unabhängig davon, ob eine Nachricht vorliegt oder nicht.

PeekMessage(....) hat folgendes Prototyping:

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

Die Parameter haben folgende Bedeutung:

Parameter

Bedeutung

LPMSG lpMsg Zeiger auf die Nachrichtenstruktur. Die Nachrichtenstruktur ist bei der Funktion GetMessage(...) aufgeführt. Diese Struktur wird durch die Funktion entsprechend ausgefüllt.
HWND hWnd Handle des Fensters, für das Nachrichten abgeprüft werden soll. Wird für diesen Parameter der Wert NULL angegeben, werden Nachrichten für alle Fenster der Anwendung abgeprüft. Wird der Wert -1 angegeben, so werden nur die Nachrichten abgeprüft, die mittels PostThreadMessage(...) abgesandt wurden.
UINT wMsgFilterMin ID der Nachricht, ab der Nachrichten abgeprüft werden sollen. Sollen alle Nachrichten abgeprüft werden, so ist hier der Wert 0 anzugeben. Für abzuprüfende Tastaturnachrichten kann die ID WM_KEYFIRST und für Mausnachrichten WM_MOUSEFIRST eingesetzt werden.
UINT wMsgFilterMax ID der Nachricht, bis zu der Nachrichten abgeprüft werden sollen. Sollen alle Nachrichten abgeprüft werden, so ist hier der Wert 0 anzugeben. Für abzuprüfende Tastaturnachrichten kann die ID WM_KEYLAST und für Mausnachrichten WM_MOUSELAST eingesetzt werden.
UINT wRemoveMsg Definiert wie mit einer vorhanden Nachricht verfahren werden soll. Siehe dazu nachfolgende Tabelle.

Für wRemoveMsg sind eine Reihe von Konstanten definiert.

Konstante

Bedeutung

PM_NOREMOVE Die Nachricht wird zwar zurückgeliefert jedoch nicht aus der Nachrichtenschlange entfernt.
PM_REMOVE Die Nachricht wird zurückgeliefert und aus der Nachrichtenschlange entfernt.
PM_QS_INPUT Es werden nur Maus- und Tastaturnachrichten bearbeitet. Nur WINDOIWS98/2000
PM_QS_PAINT Es wird nur die WM_PAINT Nachrichten bearbeitet. Mehr zur WM_PAINT Nachricht im Kurs. Nur WINDOWS98/2000
PM_QS_POSTMESSAGE Es werden nur gepostete Nachrichten bearbeitet. Mehr dazu im Kapitel 1, Lektion Nachrichtenbearbeitung. Nur WINDOWS98/2000
PM_QS_SENDMESSAGE Es werden nur gesendete Nachrichten bearbeitet. Siehe Lektion Nachrichtenverarbeitung im Kapitel 1. Nur WINDOWS98/2000

Wird für hWnd ein Wert ungleich NULL angegeben, so prüft die Funktion auch Nachrichten an Child-Windows von hWnd ab.

Als Returnwert liefert die Funktion einen Wert ungleich 0 zurück wenn eine Nachricht vorhanden ist. Ist keine Nachricht vorhanden, wird 0 zurückgeliefert.

achtung.gif (2004 Byte) PeekMessage(...) entfernt keine WM_PAINT Nachrichten wenn das Fenster einen als ungültig gekennzeichneten Bereich enthält.


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