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 |
---|---|
Mappe une boîte de message windows à une fonction gestionnaire. |
|
Mappe une plage contigu les messages windows à une fonction gestionnaire. |
|
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. |
|
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. |
|
Mappe un message de WM_COMMAND à une fonction gestionnaire, selon le code de notification. |
|
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. |
|
Mappe un message de WM_NOTIFY à une fonction gestionnaire, selon le code de notification et l'identificateur de contrôle. |
|
Mappe un message de WM_NOTIFY à une fonction gestionnaire, selon l'identificateur de contrôle. |
|
Mappe un message de WM_NOTIFY à une fonction gestionnaire, selon le code de notification. |
|
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 |
---|---|
Chaînes dans la table des messages par défaut dans la classe de base. |
|
Chaînes dans la table des messages par défaut dans une donnée membre de la classe. |
|
Chaînes à une table des messages secondaire dans la classe de base. |
|
Chaînes à une table des messages secondaire dans une donnée membre de la classe. |
|
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 |
---|---|
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. |
|
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. |
|
Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, selon le code de notification. |
|
Mappe un message réfléchi de WM_COMMAND à une fonction gestionnaire, en fonction d'une plage contigu des identificateurs de contrôle. |
|
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. |
|
Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon le code de notification et l'identificateur de contrôle. |
|
Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon l'identificateur de contrôle. |
|
Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, selon le code de notification. |
|
Mappe un message réfléchi de WM_NOTIFY à une fonction gestionnaire, en fonction d'une plage contigu des identificateurs de contrôle. |
|
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