Partager via


CMessageMap, classe

Cette classe permet aux tables des messages d'un objet pour être accès par un autre objet.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s'exécutent dans les fenêtres d'exécution.

class ATL_NO_VTABLE CMessageMap

Membres

Méthodes publiques

Nom

Description

CMessageMap::ProcessWindowMessage

Accède à une table des messages dans CMessageMapclasse dérivée.

Notes

CMessageMap est une classe de base abstraite qui fournit les tables des messages d'un objet soient accessibles par un autre objet. Pour qu'un objet expose ses tables des messages, la classe doit dériver d' CMessageMap.

ATL utilise CMessageMap pour prendre en charge les fenêtres contenues et le chaînage dynamique de table des messages. Par exemple, une classe contenant un objet de CContainedWindow doit dériver d' CMessageMap. Le code suivant est pris de l'exemple de SUBEDIT . Par CComControl, la classe d' CAtlEdit dérive automatiquement d' 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()

Étant donné que la fenêtre contenue, m_EditCtrl, utilise une table des messages dans la classe conteneur, CAtlEdit dérive d' CMessageMap.

Pour plus d'informations sur les tables des messages, consultez tables des messages dans l'article « classes de fenêtres ATL. »

Configuration requise

Header: atlwin.h

Voir aussi

Référence

CDynamicChain, classe

BEGIN_MSG_MAP

ALT_MSG_MAP

Autres ressources

Vue d'ensemble de la classe ATL