CHAIN_MSG_MAP
Define una entrada en un mapa de mensajes.
CHAIN_MSG_MAP( theChainClass )
Parámetros
- theChainClass
[in] El nombre de la clase base que contiene el mapa de mensajes.
Comentarios
CHAIN_MSG_MAP envía mensajes a un mapa de mensajes predeterminado de la clase base (declarado con BEGIN_MSG_MAP).Para enviar mensajes a un mapa de mensajes alternativo de la clase base (declarado con ALT_MSG_MAP), utilice CHAIN_MSG_MAP_ALT.
[!NOTA]
Siempre se inicia un mapa de mensajes con BEGIN_MSG_MAP.Puede declarar entonces asigna alternativos subsiguientes del mensaje con ALT_MSG_MAP.La macro de END_MSG_MAP marca el final del mapa de mensajes.Cada mapa de mensajes debe tener exactamente una instancia de BEGIN_MSG_MAP y de END_MSG_MAP.
Para obtener más información sobre cómo utilizar mapas de mensajes en ATL, vea Mapas de mensajes.
Ejemplo
class CMyExtClass : public CMyBaseClass
{
public:
BEGIN_MSG_MAP(CMyExtClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(1)
// chain to first alternative message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map in CMyBaseClass
CHAIN_MSG_MAP_ALT(CMyBaseClass, 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;
}
};
Este ejemplo muestra lo siguiente:
Si un procedimiento de ventana está utilizando el mapa de mensajes predeterminado de entity_CODECMyClass y OnPaint no controla un mensaje, el mensaje se dirige al mensaje predeterminado de entity_CODECMyBaseClass asignado para procesar.
Si un procedimiento de ventana utiliza el primer mensaje alternativo asignado en CMyClass, todos los mensajes se dirigen al mapa de mensajes predeterminado de entity_CODECMyBaseClass.
Si un procedimiento de ventana utiliza el mapa en segundo lugar de mensajes alternativo de entity_CODECMyClass y OnChar no controla un mensaje, el mensaje se dirige al mensaje alternativo especificado asignado en CMyBaseClass.CMyBaseClass debe haber declarado este mensaje asignado con ALT_MSG_MAP(1).
Requisitos
encabezado: atlwin.h