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 die folgenden Aufgaben ausgeführt werden, die Windows-Nachrichten und -Nachrichtenwarteschlangen zugeordnet sind. |
Nachrichtenreferenz | Enthält den API-Verweis. |
System-Provided Nachrichten
Listen der vom System bereitgestellten Nachrichten finden Sie unter Systemdefinierte Nachrichten.
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 | Sendet eine Nachricht an eine Fensterprozedur. Es wird in der Regel verwendet, um eine Nachricht zu senden, die von der GetMessage-Funktion abgerufen wird. |
GetInputState | Bestimmt, ob in der Nachrichtenwarteschlange des aufrufenden Threads Maus- oder Tastaturnachrichten vorhanden sind. |
GetMessage | Ruft eine Nachricht aus der Nachrichtenwarteschlange des aufrufenden Threads ab. Die Funktion sendet eingehende gesendete Nachrichten, bis eine gesendete Nachricht für den Abruf verfügbar ist. Im Gegensatz zu GetMessage wartet die PeekMessage-Funktion nicht, bis eine Nachricht gesendet wird, bevor sie zurückgegeben wird. |
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. Um die aktuelle Position des Cursors zu bestimmen, verwenden Sie die GetCursorPos-Funktion . |
GetMessageTime | Ruft die Nachrichtenzeit für die letzte Nachricht ab, die von der GetMessage-Funktion abgerufen wurde. Die Zeit ist eine lange ganze Zahl, die die verstrichene Zeit in Millisekunden vom Start des Systems bis zum Zeitpunkt der Erstellung der Nachricht (d. h. in der Nachrichtenwarteschlange des Threads) angibt. |
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 Prozess oder einem anderen Prozess) durch einen Aufruf der SendMessage-Funktion gesendet wurde. Verwenden Sie die Funktion InSendMessageEx , um zusätzliche Informationen darüber zu erhalten, wie die Nachricht gesendet wurde. |
InSendMessageEx | Bestimmt, ob die aktuelle Fensterprozedur eine Nachricht verarbeitet, die von einem anderen Thread (im selben Prozess oder in einem anderen Prozess) gesendet wurde. |
PeekMessage | Sendet eingehende gesendete Nachrichten, überprüft die Threadnachrichtenwarteschlange auf eine gesendete Nachricht und ruft die Nachricht ab (falls vorhanden). |
PostMessage | Sendet 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 verarbeitet. Um eine Nachricht in der Nachrichtenwarteschlange zu posten, die einem Thread zugeordnet ist, verwenden Sie die PostThreadMessage-Funktion . |
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 | Sendet eine Nachricht an die Nachrichtenwarteschlange des angegebenen Threads. Es wird zurückgegeben, ohne darauf zu warten, dass der Thread die Nachricht verarbeitet. |
RegisterWindowMessage | Definiert eine neue Fenstermeldung, die garantiert im gesamten System 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ückzugeben, 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 anwendungsdefinierte Funktionsnamen. |
SendMessage | Sendet die angegebene Nachricht an ein Fenster oder Fenster. Die SendMessage-Funktion ruft die Fensterprozedur für das angegebene Fenster auf und wird erst zurückgegeben, wenn die Fensterprozedur die Nachricht verarbeitet hat. Um eine Nachricht zu senden und sofort zurückzugeben, verwenden Sie die Funktion SendMessageCallback oder SendNotifyMessage . Um eine Nachricht in der Nachrichtenwarteschlange eines Threads zu posten und sofort zurückzugeben, verwenden Sie die Funktion PostMessage oder PostThreadMessage . |
SendMessageCallback | Sendet die angegebene Nachricht an ein Fenster oder Fenster. Es ruft die Fensterprozedur für das angegebene Fenster auf und gibt sofort zurück. Nachdem die Fensterprozedur die Nachricht verarbeitet hat, ruft das System die angegebene Rückruffunktion auf und übergibt das Ergebnis der Nachrichtenverarbeitung und einen von der Anwendung definierten Wert an die Rückruffunktion. |
SendMessageTimeout | Sendet die angegebene Nachricht an eines von mehreren Fenstern. |
SendNotifyMessage | Sendet die angegebene Nachricht an ein Fenster oder Fenster. Wenn das Fenster vom aufrufenden Thread erstellt wurde, ruft SendNotifyMessage die Fensterprozedur für das Fenster auf und wird erst zurückgegeben, 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 wartet nicht, bis die Fensterprozedur die Verarbeitung der Nachricht abgeschlossen 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 Nachrichten mit virtuellen Schlüsseln in Zeichennachrichten. Die Zeichennachrichten werden an die Nachrichtenwarteschlange des aufrufenden Threads gesendet, um beim nächsten Aufruf der GetMessage - oder PeekMessage-Funktion vom Thread gelesen zu werden. |
WaitMessage | Gibt die Steuerung für andere Threads ab, wenn ein Thread keine anderen Nachrichten in seiner Nachrichtenwarteschlange enthält. Die WaitMessage-Funktion hält den Thread an und gibt erst zurück, wenn eine neue Nachricht in der Nachrichtenwarteschlange des Threads platziert wird. |
Nachrichtenkonstanten
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_USER | Wird verwendet, um private Nachrichten für die Verwendung durch private Fensterklassen zu definieren. |
Nachrichtenstrukturen
Name | BESCHREIBUNG |
---|---|
BSMINFO | Enthält Informationen zu einem Fenster, das eine Anforderung von BroadcastSystemMessageEx abgelehnt hat. |
MSG | Enthält Meldungsinformationen aus der Meldungswarteschlange eines Threads. |