CHAIN_MSG_MAP_MEMBER
Définit une entrée dans une table des messages.
CHAIN_MSG_MAP_MEMBER( theChainMember )
Paramètres
- theChainMember
[in] Le nom de la donnée membre qui contient la table des messages.
Notes
CHAIN_MSG_MAP_MEMBER dirige des messages dans la table des messages par défaut d'une donnée membre (déclarée avec BEGIN_MSG_MAP).Pour exécuter des messages dans la table des messages secondaire d'une donnée membre (déclarée avec ALT_MSG_MAP), utilisez CHAIN_MSG_MAP_ALT_MEMBER.
[!REMARQUE]
Commencez toujours une table des messages avec BEGIN_MSG_MAP.Vous pouvez déclarer les tables des messages secondaires suivantes avec ALT_MSG_MAP.La macro d' END_MSG_MAP marque la carte du message.Chaque table des messages doit avoir une seule 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.
Exemple
class CMyContainerClass : public CWindowImpl<CMyContainerClass>
{
public:
CMyContainedClass m_obj;
BEGIN_MSG_MAP(CMyContainerClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map of m_obj
CHAIN_MSG_MAP_MEMBER(m_obj)
ALT_MSG_MAP(1)
// chain to default message map of m_obj
CHAIN_MSG_MAP_MEMBER(m_obj)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map of m_obj
CHAIN_MSG_MAP_ALT_MEMBER(m_obj, 1)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnChar(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
Cet exemple montre ce qui suit :
Si une procédure de fenêtre utilise la table des messages par défaut d'CMyClass et OnPaint ne gère pas de message, le message est dirigé vers la table des messages par défaut d'm_obj pour traiter.
Si une procédure de fenêtre utilise la première table des messages secondaire dans CMyClass, tous les messages sont dirigés vers la table des messages par défaut d'm_obj.
Si une procédure de fenêtre utilise la table des messages secondaire d'CMyClass deuxième et OnChar ne gère pas de message, le message est dirigé vers la table des messages secondaire spécifiée d' m_obj.La classe CMyContainedClass doit être déclaré cette table des messages avec ALT_MSG_MAP(1).
Configuration requise
Header: atlwin.h