classe CMessageMap
CMessageMap é uma classe base abstrata que permite mensagem de um objeto mapeia para serem acessados por outro objeto. Em ordem para um objeto para expor seus mapas de mensagem, sua classe deve derivar de CMessageMap.
ATL usa CMessageMap para suporte contida janelas e encadeamento de mapa de mensagem dinâmica. Por exemplo, qualquer classe que contém um objeto de CContainedWindow deve derivar de CMessageMap. O código a seguir é tirado do exemplo SUBEDIT . Por meio de CComControl, a CAtlEdit classe automaticamente deriva CMessageMap.
classe CAtlEdit: CComControllt pública;CAtlEdit >,...
/ / CComControl deriva de CWindowImpl,
/ / que deriva CMessageMap
{
público:
/ / Declare um membro de dados da janela contida
CContainedWindow m_EditCtrl;
/ / Inicializar a janela contida:
// 1. Passar "Editar" para especificar que o contido / / janela deve ser baseada no padrão / / Windows Editar caixa
// 2. Passar 'this' ponteiro para especificar esse CAtlEdit / / contém o mapa da mensagem a ser usado para o / / processamento de mensagens da janela contido
// 3. Passe o identificador do mapa da mensagem. Em
/ / Neste caso, '1' identifica o mapa da mensagem
/ / declarado com ALT_MSG_MAP(1)
CAtlEdit(): m_EditCtrl(_T("EDIT"), este, 1)
{
m_bWindowOnly = TRUE;
}
/ / Declare o mapa da mensagem padrão
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
...
/ / Declare um mapa da mensagem alternativo,
/ / identificado por '1'
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_CHAR, OnChar)
END_MSG_MAP()
...
};
Porque a janela contida, m_EditCtrl , usa um mapa da mensagem da classe que contém, CAtlEdit deriva CMessageMap.
Para obter mais informações sobre mapas de mensagem, consulte Mensagem mapas no artigo "Classes de janela do ATL".
# include lt;atlwin.h>
Consulte tambémnbsp;CDynamicChain, BEGI&N_MSG_MAP, ALT_MSG_MAP