Partager via


CMessageMap, classe

Cette classe permet d’accéder aux mappages de messages d’un objet par un autre objet.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

class ATL_NO_VTABLE CMessageMap

Membres

Méthodes publiques

Nom Description
CMessageMap ::P rocessWindowMessage Accède à une carte de messages dans la CMessageMapclasse dérivée.

Notes

CMessageMap est une classe de base abstraite qui permet d’accéder aux mappages de messages d’un objet par un autre objet. Pour qu’un objet expose ses mappages de messages, sa classe doit dériver de CMessageMap.

ATL utilise CMessageMap pour prendre en charge les fenêtres autonomes et le chaînage dynamique de la carte de messages. Par exemple, toute classe contenant un objet CContainedWindow doit dériver de CMessageMap. Le code suivant est extrait de l’exemple SUBEDIT . Par le biais de CComControl, la CAtlEdit classe dérive automatiquement de 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 autonome, , m_EditCtrlutilise une carte de messages dans la classe conteneur, CAtlEdit dérive de CMessageMap.

Pour plus d’informations sur les mappages de messages, consultez message Cartes dans l’article « Classes de fenêtre ATL ».

Spécifications

En-tête : atlwin.h

CMessageMap ::P rocessWindowMessage

Accède à la carte de messages identifiée par dwMsgMapID dans une CMessageMapclasse dérivée.

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

Paramètres

hWnd
[in] Handle de la fenêtre qui reçoit le message.

uMsg
[in] Message envoyé à la fenêtre.

wParam
[in] Informations supplémentaires spécifiques aux messages.

lParam
[in] Informations supplémentaires spécifiques aux messages.

lResult
[out] Résultat du traitement des messages.

dwMsgMapID
[in] Identificateur du mappage de messages qui traitera le message. La carte de messages par défaut, déclarée avec BEGIN_MSG_MAP, est identifiée par 0. Une autre carte de messages, déclarée avec ALT_MSG_MAP(msgMapID), est identifiée par msgMapID.

Valeur de retour

TRUE si le message est entièrement géré ; sinon, FALSE.

Notes

Appelée par la procédure de fenêtre d’un objet CContainedWindow ou d’un objet qui est chaîné dynamiquement vers la carte de messages.

Voir aussi

CDynamicChain, classe
BEGIN_MSG_MAP
ALT_MSG_MAP(msgMapID)
Vue d’ensemble de la classe