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. |