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