Teilen über


CMessageMap-Klasse

Mit dieser Klasse kann die Nachrichtenzuordnung eines Objekts von einem anderen Objekt zugegriffen werden.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class ATL_NO_VTABLE CMessageMap

Member

Öffentliche Methoden

Name Beschreibung
CMessageMap::P rocessWindowMessage Greift auf eine Nachrichtenzuordnung in der CMessageMapabgeleiteten Klasse zu.

Hinweise

CMessageMap ist eine abstrakte Basisklasse, mit der die Nachrichtenzuordnungen eines Objekts von einem anderen Objekt abgerufen werden können. Damit ein Objekt seine Nachrichtenzuordnungen verfügbar macht, muss seine Klasse von CMessageMap.

ATL unterstützt CMessageMap enthaltene Fenster und dynamische Nachrichtenzuordnungsverkettung. Beispielsweise muss jede Klasse, die ein CContainedWindow -Objekt enthält, von CMessageMap. Der folgende Code stammt aus dem SUBEDIT-Beispiel . Über CComControl wird die CAtlEdit Klasse automatisch von CMessageMap.

class ATL_NO_VTABLE CAtlEdit :
   OtherInheritedClasses
   public CComControl<CAtlEdit>
   // CComControl derives from CWindowImpl, which derives from CMessageMap
{
public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }

// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()

Da das enthaltene Fenster eine m_EditCtrlMeldungszuordnung in der enthaltenden Klasse verwendet, CAtlEdit wird von CMessageMap.

Weitere Informationen zu Nachrichtenzuordnungen finden Sie im Artikel "ATL-Fensterklassen" unter "Message Karten".

Anforderungen

Kopfzeile: atlwin.h

CMessageMap::P rocessWindowMessage

Greift auf die nachrichtenzuordnung zu, die von dwMsgMapID in einer CMessageMapabgeleiteten Klasse identifiziert wird.

virtual BOOL ProcessWindowMessage(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT& lResult,
    DWORD dwMsgMapID) = 0;

Parameter

hWnd
[in] Das Handle für das Fenster, das die Nachricht empfängt.

uMsg
[in] Die an das Fenster gesendete Nachricht.

wParam
[in] Zusätzliche nachrichtenspezifische Informationen.

lParam
[in] Zusätzliche nachrichtenspezifische Informationen.

lResult
[out] Das Ergebnis der Nachrichtenverarbeitung.

dwMsgMapID
[in] Der Bezeichner der Nachrichtenzuordnung, die die Nachricht verarbeitet. Die standardmäßige Nachrichtenzuordnung, die mit BEGIN_MSG_MAP deklariert wird, wird durch 0 identifiziert. Eine alternative Nachrichtenzuordnung, die mit ALT_MSG_MAP(msgMapID)deklariert ist, wird durch msgMapIDidentifiziert.

Rückgabewert

TRUE, wenn die Nachricht vollständig behandelt wird; andernfalls FALSE.

Hinweise

Wird von der Fensterprozedur eines CContainedWindow-Objekts oder eines Objekts aufgerufen, das dynamisch mit der Nachrichtenzuordnung verkettet wird.

Siehe auch

CDynamicChain-Klasse
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Klassenübersicht