BEGIN_MSG_MAP ( TheClass )
Parameter
theClass
[in] Der Name der Klasse, die die Meldungszuordnung enthält.
Bemerkungen
Markiert den Beginn der Standardmeldungszuordnung. CWindowImpl::WindowProc verwendet die Standardmeldungszuordnung zum Verarbeiten von Nachrichten an das Fenster gesendet. Die Meldungszuordnung leitet die Nachrichten an die entsprechenden Handler-Funktion oder eine andere Nachricht anzeigen.
Die folgenden Makros zuordnen eine Handlerfunktion eine Nachricht. Diese Funktion muss im TheClass definiert werden.
| Makro | Beschreibung |
| MESSAGE_HANDLER | Ordnet eine Windows-Meldung eine Handlerfunktion. |
| MESSAGE_RANGE_HANDLER | Karten eine zusammenhängende Reihe von Windows-Nachrichten an eine Handlerfunktion. |
| COMMAND_HANDLER | Ordnet eine WM_COMMAND -Nachricht eine Handlerfunktion, basierend auf der Benachrichtigungscode und die ID des Menüelements, Kontrolle oder Beschleuniger. |
| COMMAND_ID_HANDLER | Ordnet eine WM_COMMAND -Nachricht eine Handlerfunktion, basierend auf die ID des Menüelements, Kontrolle oder Beschleuniger. |
| COMMAND_CODE_HANDLER | Ordnet eine WM_COMMAND -Nachricht eine Handlerfunktion, basierend auf der Benachrichtigungscode. |
| COMMAND_RANGE_HANDLER | Ordnet einen zusammenhängenden Bereich von WM_COMMAND -Nachrichten eine Handlerfunktion, basierend auf die ID des Menüelements, Kontrolle oder Beschleuniger. |
| NOTIFY_HANDLER | Ordnet eine WM_NOTIFY -Meldung eine Handlerfunktion, basierend auf der Benachrichtigungscode und die Steuerelement-ID. |
| NOTIFY_ID_HANDLER | Ordnet eine WM_NOTIFY -Meldung eine Handlerfunktion, basierend auf die Steuerelement-ID. |
| NOTIFY_CODE_HANDLER | Ordnet eine WM_NOTIFY -Meldung eine Handlerfunktion, basierend auf der Benachrichtigungscode. |
| NOTIFY_RANGE_HANDLER | Ordnet einen zusammenhängenden Bereich von WM_NOTIFY -Nachrichten eine Handlerfunktion, basierend auf die Steuerelement-ID. |
Die folgenden Makros direkt eine Nachricht an eine andere Nachricht anzeigen. Dieser Prozess heißt "verketten".
| Makro | Beschreibung |
| CHAIN_MSG_MAP | Ketten um die Standardmeldungszuordnung in der Basisklasse. |
| CHAIN_MSG_MAP_MEMBER | Ketten um die Standardmeldungszuordnung in einen Datenmember der Klasse. |
| CHAIN_MSG_MAP_ALT | Ketten, eine Alternative Meldungszuordnung, die in der Basisklasse. |
| CHAIN_MSG_MAP_ALT_MEMBER | Ketten, eine Alternative Meldungszuordnung in einen Datenmember der Klasse. |
| CHAIN_MSG_MAP_DYNAMIC | Ketten um die Standardmeldung Karte in einer anderen Klasse zur Laufzeit. |
Beispiel
klasse CMyWindow:...
{
Öffentliche:
Nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
}
Wenn ein CMyWindow Objekt erhält eine WM_PAINT Nachricht, die Nachricht richtet sich an CMyWindow::OnPaint für die eigentliche Verarbeitung. Wenn OnPaint angibt, die Nachricht erfordert die Weiterverarbeitung, die Nachricht wird dann an die Standardmeldungszuordnung in gerichtet werdenCMyBaseWindow.
Neben die Standardmeldungszuordnung können Sie eine Alternative Meldungszuordnung, die mit dem ALT_MSG_MAPdefinieren. Beginnen Sie immer eine Meldungszuordnung mit BEGIN_MSG_MAP. Sie können dann nachfolgende alternative Meldungszuordnungen deklarieren. Das folgende Beispiel zeigt die Standardmeldungszuordnung und eine Alternative Meldungszuordnung, jeweils eine Handlerfunktion:
BEGI&N_MSG_MAP(CMyClass)
Nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
Das nächste Beispiel zeigt zwei alternative Meldungszuordnungen. Die Standardmeldungszuordnung ist leer.
BEGI&N_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
Nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
MESSAGE_HANDLER (WM_CREATE, OnCreate)
END_MSG_MAP()
Das END_MSG_MAP -Makro markiert das Ende der Meldungszuordnung. Beachten Sie, dass es immer genau eine Instanz des BEGIN_MSG_MAP und END_MSG_MAP.
Weitere Informationen zur Verwendung von Meldungszuordnungen in ATL Meldungszuordnungen finden Sie im Artikel "ATL-Fensterklassen."
ATL-Makros und globale Funktionen
Siehe auch