BEGIN_MSG_MAP

BEGIN_MSG_MAP ( theClass )

Paramètres

theClass

[en] Le nom de la classe contenant la carte message.

Remarques

Marque le début de la carte de message par défaut. CWindowImpl::WindowProc utilise la carte de message par défaut pour le traitement des messages envoyés à la fenêtre. La carte message dirige les messages à la fonction de gestionnaire d'événements approprié ou à une autre carte message.

Les macros suivantes carte un message à une fonction de gestionnaire d'événements. Cette fonction doit être définie dans theClass.

Macro Description
MESSAGE_HANDLER Mappe un message Windows à une fonction de gestionnaire d'événements.
MESSAGE_RANGE_HANDLER Cartes messages d'une plage contiguë de Windows à une fonction de gestionnaire d'événements.
COMMAND_HANDLER Mappe un message WM_COMMAND à une fonction de gestionnaire d'événements, basée sur le code de notification et de l'identificateur de l'élément de menu, le contrôle ou accélérateur.
COMMAND_ID_HANDLER Mappe un message WM_COMMAND à une fonction de gestionnaire d'événements, basée sur l'identificateur de l'élément de menu, le contrôle ou accélérateur.
COMMAND_CODE_HANDLER Mappe un message WM_COMMAND à une fonction de gestionnaire d'événements, basée sur le code de notification.
COMMAND_RANGE_HANDLER Mappe une gamme contiguë des messages WM_COMMAND à une fonction de gestionnaire d'événements, basée sur l'identificateur de l'élément de menu, le contrôle ou accélérateur.
NOTIFY_HANDLER Mappe un message WM_NOTIFY à une fonction de gestionnaire d'événements, basée sur le code de notification et l'identificateur du contrôle.
NOTIFY_ID_HANDLER Mappe un message WM_NOTIFY à une fonction de gestionnaire d'événements, basée sur l'identificateur de contrôle.
NOTIFY_CODE_HANDLER Mappe un message WM_NOTIFY à une fonction de gestionnaire d'événements, basée sur le code de notification.
NOTIFY_RANGE_HANDLER Mappe une gamme contiguë des messages WM_NOTIFY à une fonction de gestionnaire d'événements, basée sur l'identificateur de contrôle.

Les macros suivantes directement un message à une autre carte de message. Ce processus est appelé « chaînage ».

Macro Description
CHAIN_MSG_MAP Chaînes à la carte de message par défaut dans la classe de base.
CHAIN_MSG_MAP_MEMBER Chaînes à la carte de message par défaut à un membre de données de la classe.
CHAIN_MSG_MAP_ALT Carte de chaînes à un autre message dans la classe de base.
CHAIN_MSG_MAP_ALT_MEMBER Carte de chaînes à un autre message à un membre de données de la classe.
CHAIN_MSG_MAP_DYNAMIC Chaînes à la carte de message par défaut dans une autre classe au moment de l'exécution.

Exemple

classe CMyWindow:...
{
public :
 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)
   { ... }
}

Lorsqu'un CMyWindow objet reçoit un WM_PAINT message, le message est dirigé vers CMyWindow::OnPaint pour le traitement réel. Si OnPaint indique le message requiert un traitement ultérieur, la volonté de message, puis à la carte de message par défaut dans leCMyBaseWindow.

En plus de la carte de message par défaut, vous pouvez définir une carte message remplaçant avec ALT_MSG_MAP. Toujours commencer une carte message avec BEGIN_MSG_MAP. Vous pouvez ensuite déclarer message remplaçant les cartes. L'exemple suivant montre la carte de message par défaut et la carte d'un autre message, chacun contenant une fonction de gestionnaire d'événements:

BEGI&N_MSG_MAP(CMyClass)
 nbsp ; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

L'exemple suivant montre deux cartes message remplaçant. La carte de message par défaut est vide.

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()

La macro END_MSG_MAP marque la fin de la carte de message. Notez qu'il y a toujours exactement une instance de BEGIN_MSG_MAP et END_MSG_MAP.

Pour plus d'informations sur l'utilisation des cartes message dans ATL, consultez Message des cartes dans l'article « Classes de fenêtre ATL. »

Les Macros ATL et fonctions globales

Voir aussi

CMessageMap, CDynamicChain

Index