Compartilhar via


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

Hierarquia de exibição VC

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.

Consulte também

Conceitos

Como a mensagem de pesquisas Framework mapas