PeekMessage

Die Funktion PeekMessage eine Thread-Nachrichtenwarteschlange für eine Nachricht überprüft und platziert die Nachricht (falls vorhanden) in der angegebenen Struktur.

BOOL PeekMessage) LPMSG  LpMsg, / / Zeiger auf die Struktur für die NachrichtHWNDhWnd, / / handle zum FensterUINTwMsgFilterMin, / / erste NachrichtUINTwMsgFilterMax, / / letzte NachrichtUINTwRemoveMsg / / entfernen Fahnen);
 

Parameter

lpMsg
Zeiger auf eine MSG -Struktur, die Nachrichteninformationen erhält.
hWnd
Handle für das Fenster, dessen Nachrichten sind prüfbar.
wMsgFilterMin
Gibt den Wert der ersten Nachricht im Bereich von Nachrichten zu prüfenden.
wMsgFilterMax
Gibt den Wert der letzten Nachricht in den Bereich der Nachrichten zu prüfenden.
wRemoveMsg
Gibt an, wie Nachrichten verarbeitet werden. Dieser Parameter kann eine der folgenden Werte sein:
Wert Bedeutung
PM_NOREMOVE Nachrichten werden nicht aus der Warteschlange nach der Verarbeitung von PeekMessage entfernt.
PM_REMOVE Nachrichten werden aus der Warteschlange nach der Verarbeitung von PeekMessage entfernt.

Sie können optional den Wert PM_NOYIELD mit PM_NOREMOVE oder PM_REMOVE kombinieren. Dieses Flag verhindert, dass das System jeder Thread, der für den Aufrufer im Leerlauf gehen wartet freigegeben (siehe WaitForInputIdle).

Standardmäßig werden alle Nachrichtentypen verarbeitet. Um anzugeben, dass nur bestimmte Nachricht verarbeitet werden soll, geben Sie mindestens eine der folgenden Werte:
Wert Bedeutung
PM_QS_INPUT Windows NT 5.0 und Windows 98: Verarbeiten Nachrichten für Maus und Tastatur.
PM_QS_PAINT Windows NT 5.0 und Windows 98: Prozeßmeldungen malen.
PM_QS_POSTMESSAGE Windows NT 5.0 und Windows 98: Verarbeiten Sie alle gebuchte Nachrichten, einschließlich Timer und hotkeys.
PM_QS_SENDMESSAGE Windows NT 5.0 und Windows 98: Verarbeiten aller gesendeten Nachrichten.

Rückgabewerte

Wenn eine Meldung verfügbar ist, ist der Rückgabewert ungleich NULL.

Wenn keine Nachrichten verfügbar sind, ist der Rückgabewert 0 (null).

Bemerkungen

Im Gegensatz zur Funktion GetMessage wartet die PeekMessage Funktion nicht auf eine Nachricht in der Warteschlange platziert werden, vor der Rückkehr.

PeekMessage ruft nur Nachrichten identifiziert durch den hWnd -Parameter oder einem seiner untergeordneten Elemente wie angegeben durch die IsChild -Funktion und innerhalb des Bereichs der angegebenen durch den Parameter wMsgFilterMin und wMsgFilterMax Nachricht-Werte Fenster zugeordnet. Wenn hWnd NULL ist, ruft PeekMessage Nachrichten für jedes Fenster, das für den aktuellen Thread, die den Aufruf gehört. (PeekMessage wird nicht Nachrichten für Windows, die zu anderen Threads gehören abzurufen.) Ist hWnd -1, gibt PeekMessage nur Nachrichten mit einem hWnd -Wert NULL, wie von der Funktion PostThreadMessage gebucht. Wenn wMsgFilterMin und wMsgFilterMax beide null, PeekMessage sind gibt alle verfügbare Nachrichten (d. h. keine Bereich Filterung erfolgt).

Die Konstanten WM_KEYFIRST und WM_KEYLAST können als Filterwerte verwendet werden, um alle Tastaturmeldungen abzurufen; die Konstanten WM_MOUSEFIRST und WM_MOUSELAST können verwendet werden, um alle Maus-Nachrichten abzurufen.

Die Funktion PeekMessage wird normalerweise nicht WM_PAINT-Meldungen aus der Warteschlange entfernt. WM_PAINT-Meldungen verbleiben in der Warteschlange, bis sie verarbeitet werden. Wenn eine WM_PAINT-Nachricht eine null Update-Region hat, wird jedoch PeekMessage es aus der Warteschlange entfernen.

Windows CE: WM_PAINT-Meldungen mit einer null Aktualisierungsbereich sind nicht aus der Warteschlange entfernt.

QuickInfo

&Nbsp; Windows NT: Version 3.1 oder höher erforderlich.
Windows:Erfordert Windows 95 oder höher.
Windows CE:Version 1.0 oder höher benötigt.
Header:In winuser.h deklarierten.
Importieren Bibliothek:Verwenden Sie user32.lib.
Unicode:Als Unicode und ANSI-Versionen unter Windows NT implementiert.

Siehe auch

Nachrichten und Message Queues Übersicht, Message und Message Queue-Funktionen, GetMessage, IsChild, MSG, WaitForInputIdle, WaitMessage

Index