Freigeben über


Senden und Empfangen von Meldungen

Erwägen Sie das Senden eines Teils des Prozesses und die Reaktion des Frameworks.

Die meisten Nachrichten ergeben sich aus der Benutzerinteraktion mit dem Programm. Befehle werden durch Mausklicks in Menüelementen oder Symbolleistenschaltflächen oder durch Tastenkombinationen generiert. Der Benutzer generiert auch Windows-Nachrichten, z. B. durch Verschieben oder Ändern der Größe eines Fensters. Andere Windows-Nachrichten werden gesendet, wenn Ereignisse wie Programmstart oder Beendigung auftreten, wenn Fenster den Fokus erhalten oder verlieren usw. Steuerelementbenachrichtigungen werden durch Mausklicks oder andere Benutzerinteraktionen mit einem Steuerelement generiert, z. B. eine Schaltfläche oder ein Listenfeld-Steuerelement in einem Dialogfeld.

Die Run Memberfunktion der Klasse CWinApp ruft Nachrichten ab und verteilt sie an das entsprechende Fenster. Die meisten Befehlsmeldungen werden an das Standard Framefenster der Anwendung gesendet. Die WindowProc vordefinierte Klassenbibliothek ruft die Nachrichten ab und leitet sie je nach Empfangener Kategorie unterschiedlich weiter.

Betrachten Sie nun den empfangenden Teil des Prozesses.

Der anfängliche Empfänger einer Nachricht muss ein Fensterobjekt sein. Windows-Nachrichten werden in der Regel direkt von diesem Fensterobjekt behandelt. Befehlsnachrichten, die in der Regel aus dem Standard Framefenster der Anwendung stammen, werden an die Befehlszielkette weitergeleitet, die unter Command Routing beschrieben wird.

Jedes Objekt, das Nachrichten oder Befehle empfangen kann, verfügt über eine eigene Nachrichtenzuordnung, die eine Nachricht oder einen Befehl mit dem Namen des Handlers koppelt.

Wenn ein Befehlszielobjekt eine Nachricht oder einen Befehl empfängt, durchsucht es seine Nachrichtenzuordnung nach einer Übereinstimmung. Wenn ein Handler für die Nachricht gefunden wird, ruft er den Handler auf. Weitere Informationen dazu, wie Nachrichtenzuordnungen durchsucht werden, finden Sie unter How the Framework Searches Message Karten.For more information about how message maps are searched, see How the Framework Searches Message Karten. Weitere Informationen finden Sie in den Abbildungsbefehlen im Framework.

Siehe auch

So ruft das Framework einen Handler auf