klasse CMessageMap
CMessageMap ist eine abstrakte Basisklasse, die ein Objekt Message kann Karten von einem anderen Objekt zugegriffen werden. Um ein Objekt um seinen Meldungszuordnungen verfügbar zu machen muss seiner Klasse von CMessageMap abgeleitet werden.
ATL verwendet CMessageMap , um Unterstützung enthalten Windows und dynamische Botschaft Karte Verkettung. Beispielsweise muss jeder Klasse mit einem Objekt der CContainedWindow von CMessageMapabgeleitet werden. Der folgende Code stammt aus der SUBEDIT -Beispiel. Durch CComControldie CAtlEdit -Klasse wird automatisch von CMessageMap.
cAtlEdit Klasse: öffentliche CComControllt;CAtlEdit >,...
/ / CComControl leitet sich von CWindowImpl,
/ / die leitet sich von CMessageMap
{
Öffentliche:
/ / Declare Datenmitglied enthaltenen Fenster
CContainedWindow M_EditCtrl;
/ / Initialize enthaltene Fenster:
// 1. Übergeben Sie "Bearbeiten", um anzugeben, dass die enthaltenen / Fenster sollten werden basierend auf dem Standard / / Windows-Edit-Feld
// 2. Übergeben Sie den this-Zeiger angeben die CAtlEdit / / enthält die Meldungszuordnung für die / / enthaltenen Fenster Message-Verarbeitung
// 3. Übergeben Sie den Bezeichner der Meldungszuordnung. Im
/ / in diesem Fall, '1' identifiziert die Meldungszuordnung
/ / mit ALT_MSG_MAP(1) deklariert
CAtlEdit(): m_EditCtrl(_T("EDIT"), dieses, 1)
{
M_bWindowOnly = TRUE;
}
/ / Die Standardmeldungszuordnung deklariert
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
...
/ / Declare eine Alternative Meldungszuordnung,
/ / ermittelt von '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_CHAR, OnChar)
END_MSG_MAP()
...
};
Da die enthaltenen Fenster, m_EditCtrl , verwendet in der enthaltenden Klasse eine Meldungszuordnung CAtlEdit leitet sich von CMessageMap.
Für weitere Informationen zu Meldungszuordnungen Meldungszuordnungen finden Sie im Artikel "ATL-Fensterklassen."
# include lt;atlwin.h>
Siehe auch&Nbsp;CDynamicChain, BEGIN_MSG_MAP, ALT_MSG_MAP