Nachrichten und Nachrichtenwarteschlangen

In diesem Abschnitt werden Nachrichten und Nachrichtenwarteschlangen und deren Verwendung in Ihren Anwendungen beschrieben.

In diesem Abschnitt

Name Beschreibung
Informationen zu Meldungen und Meldungswarteschlangen In diesem Abschnitt werden Windows Nachrichten und Nachrichtenwarteschlangen erläutert.
Verwenden von Nachrichten und Nachrichtenwarteschlangen Die folgenden Codebeispiele veranschaulichen, wie sie die folgenden Aufgaben ausführen, die Windows Nachrichten und Nachrichtenwarteschlangen zugeordnet sind.
Meldungsreferenz Enthält die API-Referenz.

System-Provided Nachrichten

Listen der vom System bereitgestellten Nachrichten finden Sie unter Systemdefinierte Meldungen.

Nachrichtenfunktionen

Name Beschreibung
BroadcastSystemMessage Sendet eine Nachricht an die angegebenen Empfänger. Die Empfänger können Anwendungen, installierbare Treiber, Netzwerktreiber, Gerätetreiber auf Systemebene oder eine beliebige Kombination dieser Systemkomponenten sein.
Um zusätzliche Informationen zu erhalten, wenn die Anforderung definiert ist, verwenden Sie die BroadcastSystemMessageEx-Funktion.
BroadcastSystemMessageEx Sendet eine Nachricht an die angegebenen Empfänger. Die Empfänger können Anwendungen, installierbare Treiber, Netzwerktreiber, Gerätetreiber auf Systemebene oder eine beliebige Kombination dieser Systemkomponenten sein.
Diese Funktion ähnelt BroadcastSystemMessage, mit der Ausnahme, dass diese Funktion weitere Informationen von den Empfängern zurückgeben kann.
DispatchMessage Gibt eine Nachricht an eine Fensterprozedur weiter. Sie wird in der Regel zum Senden einer Nachricht verwendet, die von der GetMessage-Funktion abgerufen wurde.
GetInputState Bestimmt, ob in der Meldungswarteschlange des aufrufenden Threads Maus- oder Tastaturmeldungen enthalten sind.
GetMessage Ruft eine Nachricht aus der Nachrichtenwarteschlange des aufrufenden Threads ab. Die Funktion versendet eingehende gesendete Nachrichten, bis eine gesendete Nachricht zum Abrufen verfügbar ist.
Im Gegensatz zu GetMessagewartet die PeekMessage-Funktion nicht, bis eine Nachricht gesendet wird, bevor sie zurücksendet.
GetMessageExtraInfo Ruft die zusätzlichen Nachrichteninformationen für den aktuellen Thread ab. Zusätzliche Nachrichteninformationen sind ein anwendungs- oder treiberdefinierter Wert, der der Nachrichtenwarteschlange des aktuellen Threads zugeordnet ist.
GetMessagePos Ruft die Cursorposition für die letzte Nachricht ab, die von der GetMessage-Funktion abgerufen wurde.
Verwenden Sie die GetCursorPos-Funktion, um die aktuelle Position des Cursors zu bestimmen.
GetMessageTime Ruft die Nachrichtenzeit für die letzte von der GetMessage-Funktion abgerufene Nachricht ab. Die Zeit ist eine lange ganze Zahl, die die verstrichene Zeit in Millisekunden zwischen dem Start des Systems und dem Zeitpunkt angibt, zu dem die Nachricht erstellt wurde (d. h. in der Nachrichtenwarteschlange des Threads platziert).
GetQueueStatus Gibt den Typ der Nachrichten an, die in der Nachrichtenwarteschlange des aufrufenden Threads gefunden wurden.
InSendMessage Bestimmt, ob die aktuelle Fensterprozedur eine Nachricht verarbeitet, die von einem anderen Thread (im selben oder einem anderen Prozess) durch einen Aufruf der SendMessage-Funktion gesendet wurde.
Um zusätzliche Informationen darüber zu erhalten, wie die Nachricht gesendet wurde, verwenden Sie die InSendMessageEx-Funktion.
InSendMessageEx Bestimmt, ob die aktuelle Fensterprozedur eine Nachricht verarbeitet, die von einem anderen Thread (im selben oder einem anderen Prozess) gesendet wurde.
PeekMessage Versendet eingehende gesendete Nachrichten, überprüft die Threadnachrichtenwarteschlange auf eine gesendete Nachricht und ruft die Nachricht ab (sofern vorhanden).
PostMessage Veröffentlicht eine Nachricht in der Nachrichtenwarteschlange, die dem Thread zugeordnet ist, der das angegebene Fenster erstellt hat, und gibt zurück, ohne darauf zu warten, dass der Thread die Nachricht verarbeiten kann.
Verwenden Sie die PostThreadMessage-Funktion, um eine Nachricht in der einem Thread zugeordneten Nachrichtenwarteschlange zu veröffentlichen.
PostQuitMessage Gibt dem System an, dass ein Thread eine Anforderung zum Beenden (Beenden) gestellt hat. Sie wird in der Regel als Reaktion auf eine WM _ DESTROY-Nachricht verwendet.
PostThreadMessage Veröffentlicht eine Nachricht an die Nachrichtenwarteschlange des angegebenen Threads. Es wird zurückgegeben, ohne darauf zu warten, dass der Thread die Nachricht verarbeiten kann.
RegisterWindowMessage Definiert eine neue Fenstermeldung, die im gesamten System garantiert eindeutig ist. Der Nachrichtenwert kann beim Senden oder Posten von Nachrichten verwendet werden.
ReplyMessage Antwortet auf eine Nachricht, die über die SendMessage-Funktion gesendet wird, ohne die Steuerung an die Funktion zurück zu geben, die SendMessage aufgerufen hat.
SendAsyncProc Eine anwendungsdefinierte Rückruffunktion, die mit der SendMessageCallback-Funktion verwendet wird. Das System übergibt die Nachricht an die Rückruffunktion, nachdem die Nachricht an die Zielfensterprozedur übergeben wurde. Der SENDASYNCPROC-Typ definiert einen Zeiger auf diese Rückruffunktion. SendAsyncProc ist ein Platzhalter für den anwendungsdefinierten Funktionsnamen.
SendMessage Sendet die angegebene Meldung an ein Fenster oder Fenster. Die SendMessage-Funktion ruft die Fensterprozedur für das angegebene Fenster auf und gibt erst dann zurück, wenn die Fensterprozedur die Nachricht verarbeitet hat.
Um eine Nachricht zu senden und sofort zurückzukehren, verwenden Sie die SendMessageCallback- oder SendNotifyMessage-Funktion. Um eine Nachricht an die Nachrichtenwarteschlange eines Threads zu senden und sofort zurückzukehren, verwenden Sie die PostMessage- oder PostThreadMessage-Funktion.
SendMessageCallback Sendet die angegebene Meldung an ein Fenster oder Fenster. Sie ruft die Fensterprozedur für das angegebene Fenster auf und kehrt sofort zurück. Nachdem die Fensterprozedur die Nachricht verarbeitet hat, ruft das System die angegebene Rückruffunktion auf und über gibt das Ergebnis der Nachrichtenverarbeitung und einen anwendungsdefinierten Wert an die Rückruffunktion weiter.
SendMessageTimeout Sendet die angegebene Meldung an eines von mehr Fenstern.
SendNotifyMessage Sendet die angegebene Meldung an ein Fenster oder Fenster. Wenn das Fenster vom aufrufenden Thread erstellt wurde, ruft SendNotifyMessage die Fensterprozedur für das Fenster auf und gibt erst dann zurück, wenn die Fensterprozedur die Nachricht verarbeitet hat. Wenn das Fenster von einem anderen Thread erstellt wurde, übergibt SendNotifyMessage die Nachricht an die Fensterprozedur und gibt sofort zurück. Es wird nicht gewartet, bis die Fensterprozedur die Verarbeitung der Nachricht beendet hat.
SetMessageExtraInfo Legt die zusätzlichen Nachrichteninformationen für den aktuellen Thread fest. Zusätzliche Nachrichteninformationen sind ein anwendungs- oder treiberdefinierter Wert, der der Nachrichtenwarteschlange des aktuellen Threads zugeordnet ist. Eine Anwendung kann die GetMessageExtraInfo-Funktion verwenden, um die zusätzlichen Nachrichteninformationen eines Threads abzurufen.
TranslateMessage Übersetzt Meldungen virtueller Schlüssel in Zeichenmeldungen. Die Zeichennachrichten werden an die Nachrichtenwarteschlange des aufrufenden Threads gesendet, damit sie gelesen werden, wenn der Thread das nächste Mal die GetMessage- oder PeekMessage-Funktion aufruft.
WaitMessage Gibt die Steuerung an andere Threads zurück, wenn ein Thread keine anderen Nachrichten in der Nachrichtenwarteschlange auflistet. Die WaitMessage-Funktion hält den Thread an und gibt erst dann zurück, wenn eine neue Nachricht in der Nachrichtenwarteschlange des Threads platziert wird.

Nachrichtenkonst constants

Name Beschreibung
OCM _ _ BASE Wird verwendet, um private Nachrichten für die Verwendung durch private Fensterklassen zu definieren.
_WM-APP Wird verwendet, um private Nachrichten zu definieren.
_WM-BENUTZER Wird verwendet, um private Nachrichten für die Verwendung durch private Fensterklassen zu definiert.

Nachrichtenstrukturen

Name Beschreibung
BSMINFO Enthält Informationen zu einem Fenster, das eine Anforderung von BroadcastSystemMessageExverweigert hat.
MSG Enthält Meldungsinformationen aus der Meldungswarteschlange eines Threads.