Partager via


BEGIN_MSG_MAP

Marque le début de la table des messages par défaut.

BEGIN_MSG_MAP( theClass )

Paramètres

  • theClass
    [in] Le nom de la classe qui contient la table des messages.

Notes

CWindowImpl::WindowProc utilise la table des messages par défaut pour traiter les messages envoyés à la fenêtre. La table des messages dirige des messages à la fonction gestionnaire appropriée ou une autre table des messages.

Les macros suivantes correspondent un message à une fonction gestionnaire. Cette fonction doit être définie dans theClass.

Macro

Description

MESSAGE_HANDLER

Mappe une boîte de message windows à une fonction gestionnaire.

MESSAGE_RANGE_HANDLER

Mappe une plage contigu les messages windows à une fonction gestionnaire.

COMMAND_HANDLER

Mappe un message de WM_COMMAND à une fonction gestionnaire, selon le code de notification et l'identificateur de l'élément de menu, le contrôle, ou de l'accélérateur.

COMMAND_ID_HANDLER

Mappe un message de WM_COMMAND à une fonction gestionnaire, selon l'identificateur de l'élément de menu, le contrôle, ou de l'accélérateur.

COMMAND_CODE_HANDLER

Mappe un message de WM_COMMAND à une fonction gestionnaire, selon le code de notification.

COMMAND_RANGE_HANDLER

Mappe une chaîne contiguë des messages de WM_COMMAND à une fonction gestionnaire, selon l'identificateur de l'élément de menu, le contrôle, ou de l'accélérateur.

NOTIFY_HANDLER

Mappe un message de WM_NOTIFY à une fonction gestionnaire, selon le code de notification et l'identificateur de contrôle.

NOTIFY_ID_HANDLER

Mappe un message de WM_NOTIFY à une fonction gestionnaire, selon l'identificateur de contrôle.

NOTIFY_CODE_HANDLER

Mappe un message de WM_NOTIFY à une fonction gestionnaire, selon le code de notification.

NOTIFY_RANGE_HANDLER

Mappe une chaîne contiguë des messages de WM_NOTIFY à une fonction gestionnaire, selon l'identificateur de contrôle.

Les macros suivantes dirigent des messages à une autre table des messages. Ce processus est appelé « chaînage. »

Macro

Description

CHAIN_MSG_MAP

Chaînes dans la table des messages par défaut dans la classe de base.

CHAIN_MSG_MAP_MEMBER

Chaînes dans la table des messages par défaut dans une donnée membre de la classe.

CHAIN_MSG_MAP_ALT

Chaînes à une table des messages secondaire dans la classe de base.

CHAIN_MSG_MAP_ALT_MEMBER

Chaînes à une table des messages secondaire dans une donnée membre de la classe.

CHAIN_MSG_MAP_DYNAMIC

Chaînes dans la table des messages par défaut dans une autre classe au moment de l'exécution.

Les macros suivantes dirigent les messages « dans » de la fenêtre parente. Par exemple, un contrôle envoie normalement des messages de notification à sa fenêtre parente pour traiter, mais la fenêtre parente peut refléter le message au contrôle.

Macro

Description

REFLECTED_COMMAND_HANDLER

Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, selon le code de notification et l'identificateur de l'élément de menu, le contrôle, ou de l'accélérateur.

REFLECTED_COMMAND_ID_HANDLER

Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, selon l'identificateur de l'élément de menu, le contrôle, ou de l'accélérateur.

REFLECTED_COMMAND_CODE_HANDLER

Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, selon le code de notification.

REFLECTED_COMMAND_RANGE_HANDLER

Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, en fonction d'une plage contigu des identificateurs de contrôle.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, selon le code de notification et une plage contigu des identificateurs de contrôle.

REFLECTED_NOTIFY_HANDLER

Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon le code de notification et l'identificateur de contrôle.

REFLECTED_NOTIFY_ID_HANDLER

Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon l'identificateur de contrôle.

REFLECTED_NOTIFY_CODE_HANDLER

Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon le code de notification.

REFLECTED_NOTIFY_RANGE_HANDLER

Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, en fonction d'une plage contigu des identificateurs de contrôle.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon le code de notification et une plage contigu des identificateurs de contrôle.

Exemple

class CMyExtWindow : public CMyBaseWindow
{
public:
   BEGIN_MSG_MAP(CMyExtWindow)
      MESSAGE_HANDLER(WM_PAINT, OnPaint)
      MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
      CHAIN_MSG_MAP(CMyBaseWindow)
   END_MSG_MAP()

   LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/)
   {
      return 0;   
   }

   LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/) 
   {
      return 0;   
   }
};

Lorsqu'un objet d' CMyExtWindow reçoit un message d' WM_PAINT , le message est dirigé vers CMyExtWindow::OnPaint pour le traitement réel. Si OnPaint indique le message requiert un traitement davantage, le message est ensuite dirigé vers la table des messages par défaut dans CMyBaseWindow.

En plus de la table des messages par défaut, vous pouvez définir une table des messages secondaire avec ALT_MSG_MAP. Commencez toujours une table des messages avec BEGIN_MSG_MAP. Vous pouvez déclarer les tables des messages secondaires ultérieures. L'exemple suivant montre la table des messages par défaut et une table des messages secondaire, chaque une fonction gestionnaire conteneur :

BEGIN_MSG_MAP(CMyOneAltClass)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

L'exemple suivant montre deux tables des messages secondaires. La table des messages par défaut est vide.

BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()

La macro d' END_MSG_MAP marque la carte du message. Notez qu'il existe toujours exactement une instance d' BEGIN_MSG_MAP et d' END_MSG_MAP.

Pour plus d'informations sur l'utilisation des tables des messages dans ATL, consultez tables des messages.

Configuration requise

Header: atlwin.h

Voir aussi

Référence

CMessageMap, classe

CDynamicChain, classe

Autres ressources

Macros de table des messages (ATL)

Macros ATL