clase CMessageMap
CMessageMap es una clase base abstracta que permite mensajes de un objeto se asigna a ser visitada por otro objeto. Para que un objeto exponer sus mapas de mensajes, debe derivar su clase de CMessageMap.
ATL utiliza CMessageMap para windows de apoyo figura y mensaje dinámico encadenamiento de mapa. Por ejemplo, cualquier clase que contiene un objeto de CContainedWindow debe derivar de CMessageMap. El código siguiente es tomado de la ejemplo SUBEDIT . A través de CComControl, la CAtlEdit clase deriva automáticamente CMessageMap.
clase CAtlEdit: CComControllt pública;CAtlEdit >,...
/ / CComControl deriva de CWindowImpl,
/ / que deriva de CMessageMap
{
público:
/ / Declara un miembro de datos de la ventana contenida
CContainedWindow m_EditCtrl;
/ / Inicializar la ventana contiene:
// 1. Pasar "Editar" para especificar que el contenido / / ventana debe estar basado en el estándar / / cuadro de edición de Windows
// 2. Pasar 'este' puntero para especificar que CAtlEdit y contiene el mapa de mensajes que se utilizará para la / / procesamiento de mensajes de ventana contenida
// 3. Pasar el identificador del mapa de mensajes. En
/ / este caso, '1' identifica el mapa de mensajes
/ / declaró con ALT_MSG_MAP(1)
CAtlEdit(): m_EditCtrl(_T("EDIT"), esta, 1)
{
m_bWindowOnly = TRUE;
}
/ / Declarar el mapa de mensaje predeterminado
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
...
/ / Declarar un mapa de mensajes alternativos,
/ / identificado por '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_CHAR, OnChar)
END_MSG_MAP()
...
};
Porque la ventana contenida, m_EditCtrl , utilizará un mapa de mensajes en la clase contenedora, CAtlEdit se deriva de CMessageMap.
Para obtener más información sobre mapas de mensajes, vea Mapas de mensaje en el artículo "Clases de ventana ATL".
# include lt;atlwin.h>
Vea tambiénnbsp;CDynamicChain, BEGI&N_MSG_MAP, ALT_MSG_MAP