Mapas de mensagem derivado
Durante o tratamento, verificar uma mensagem da classe de mensagem mapa não é o fim da matéria mapa da mensagem.O que acontece se classe CMyView (derivado de CView) não tem nenhuma entrada correspondente para uma mensagem?
Lembre-se de que CView, a classe base de CMyView, é derivado por sua vez CWnd.Thus CMyViewis a CView and is a CWnd.Cada uma dessas classes possui seu próprio mapa da mensagem.A Figura "A exibir hierarquia" abaixo mostra a relação hierárquica de classes, mas tenha em mente que uma CMyView é um único objeto que tem as características de todas as três classes.
Uma hierarquia de exibição
Portanto, se uma mensagem não pode ser correspondida na classe CMyViewdo mapa da mensagem, a estrutura também pesquisará o mapa da mensagem de sua classe base imediata.O BEGIN_MESSAGE_MAP macro no início do mapa da mensagem especifica dois nomes de classe como seus argumentos:
BEGIN_MESSAGE_MAP(CMyView, CFormView)
O primeiro argumento nomes a classe à qual pertence o mapa da mensagem.O segundo argumento fornece uma conexão com a classe base imediata — CView aqui — para que a estrutura pode pesquisar seu mapa da mensagem, muito.
Os manipuladores de mensagem fornecidos na classe base, portanto, são herdados por classe derivada.Isso é muito semelhante às funções de membro virtual normal sem precisar fazer todas as funções de membro manipulador virtual.
Se nenhum manipulador é encontrado em qualquer um dos mapas de mensagem da classe base, o processamento padrão da mensagem é executado.Se a mensagem é um comando, a estrutura roteia-o para seu próximo destino.Se for uma mensagem do Windows padrão, a mensagem é passada para o procedimento de janela padrão apropriado.
Para acelerar a correspondência do mapa da mensagem, a estrutura de caches recentes correspondências sobre a probabilidade de que ele receberá a mesma mensagem novamente.Uma conseqüência é que os processos de estrutura unhandled mensagens bastante eficiente.Mapas de mensagem são também mais eficientes do espaço de implementações que utilizam funções virtuais.