Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Durante a manipulação, verificar uma mensagem da classe de mensagem MAP não é o participante da matéria MAP da mensagem.O que acontece se de classeCMyView (derivado de CView) não tem nenhuma entrada correspondente para uma mensagem?
Tenha em mente que CView, a classe base de CMyView, é derivado por sua vez CWnd. Thus CMyView is a CView and is a CWnd.Cada uma dessas classes tem seu próprio MAP da mensagem.A figura a "A Visualizar hierarquia" abaixo mostra a relação hierárquica das classes, mas tenha em mente que umCMyView é um único objeto que tem as características de todas as três classes.
Visualizar uma hierarquia
.gif)
Portanto, se uma mensagem não pode ser iguais em classe CMyViewMAP da mensagem, a estrutura também pesquisa o MAP da mensagem de sua classe base imediata. The BEGIN_MESSAGE_MAP macro no início do MAP da mensagem especifica dois nomes de classe sistema autônomo seus argumentos:
BEGIN_MESSAGE_MAP(CMyView, CFormView)
O primeiro argumento nomeia a classe à qual pertence o MAP da mensagem.O segundo argumento fornece uma conexão com a classe base imediata — CView aqui — para que a estrutura pode pesquisar MAP da mensagem, muito.
Os manipuladores de mensagens fornecidos na classe base, portanto, são herdados por classe derivada.Isso é muito semelhante às funções de membro virtual normal sem a necessidade de fazer todas as funções do manipulador de membro virtual.
Não se for encontrado nenhum manipulador em qualquer um dos mapas de classe base de mensagem, processamento padrão da mensagem é executado.Se a mensagem é um comando, a estrutura roteia-lo para o próximo comando de 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 MAP da mensagem, a estrutura de caches de correspondências recentes sobre a probabilidade de que ele receberá a mesma mensagem novamente.Uma conseqüência é que os processos de estrutura unhandled mensagens bastante eficiente.Os mapas de mensagem também são mais espaço-eficientes do que as implementações que utilizam funções virtual.