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);
| 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. |
Wenn eine Meldung verfügbar ist, ist der Rückgabewert ungleich NULL.
Wenn keine Nachrichten verfügbar sind, ist der Rückgabewert 0 (null).
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.
&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.
Nachrichten und Message Queues Übersicht, Message und Message Queue-Funktionen, GetMessage, IsChild, MSG, WaitForInputIdle, WaitMessage