Partilhar via


Mapas de mensagem derivados

Durante a manipulação de mensagens, verifique o mapa de uma classe em si não é o final de história retornadas mapa. O que acontece se a 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 de CWnd. Assim CMyView éCView e éCWnd. Cada uma dessas classes tem seu próprio mapa da mensagem. A figura “uma hierarquia de exibição” abaixo mostra a relação hierárquica das classes, mas tenha em mente que um objeto de CMyView é um único objeto que possui as características das três classes.

Uma hierarquia de exibição

Hierarquia de uma exibição

Isso se uma mensagem não pode ser correspondida da mensagem de CMyView da classe, a estrutura também procura o mapa da mensagem da sua classe base imediata. A macro de BEGIN_MESSAGE_MAP no início da mensagem especifica dois nomes da classe como argumentos:

BEGIN_MESSAGE_MAP(CMyView, CFormView)

Os primeiros nomes de argumento a classe na qual o mapa da mensagem pertence. O segundo argumento fornecerá uma conexão com a classe base imediata — CView aqui — assim que a estrutura pode procurar seu mapa da mensagem, também.

Os manipuladores de mensagem fornecidos em uma classe base e são herdados pela classe derivada. Isso é muito semelhante às funções de membro virtuais normais sem precisar fazer todas as funções de membro do manipulador virtuais.

Se nenhum manipulador é encontrado em qualquer um dos mapas da mensagem da classe base, o processamento padrão da mensagem é executado. Se a mensagem for um comando, a estrutura rotear-la no próximo destino de comando. Se for uma mensagem padrão do windows, a mensagem será passado ao procedimento de janela padrão apropriado.

Para acelerar a correspondência retornadas mapa, a estrutura armazena em cachê correspondências recentes na probabilidade que receberá a mesma mensagem novamente. Uma resultado dessa é a estrutura que processa mensagens não manipulado suficiente eficiente. Os mapas de mensagem também são espaço mais eficientes do que as implementações que usam funções virtuais.

Consulte também

Conceitos

Como o Framework pesquisa mapas de mensagem