Ilustração de roteamento do comando

Para ilustrar, considere uma mensagem de comando de um item de menu Limpar Tudo no menu Editar de um aplicativo MDI. Suponha que a função de manipulador para esse comando seja uma função membro da classe de documento do aplicativo. Veja como esse comando chega ao manipulador depois que o usuário escolhe o item de menu:

  1. A janela de quadro principal recebe a mensagem de comando primeiro.

  2. A janela de quadro MDI principal dá à janela filho MDI atualmente ativa a chance de manipular o comando.

  3. O roteamento padrão de uma janela de quadro filho MDI dá a sua exibição uma chance de manipular o comando antes de verificar o próprio mapa de mensagens.

  4. A exibição verifica primeiro o próprio mapa de mensagens e, não encontrando nenhum manipulador, encaminha o comando para o documento associado.

  5. O documento verifica seu mapa de mensagens e localiza um manipulador. Essa função membro do documento é chamada e o roteamento é interrompido.

Se o documento não tivesse um manipulador, ele encaminharia o comando para o modelo de documento. Em seguida, o comando retornaria à exibição e, em seguida, à janela de quadro. Por fim, a janela de quadro verificaria seu mapa de mensagens. Se essa verificação também falhasse, o comando seria roteado para a janela de quadro MDI principal e, em seguida, para o objeto de aplicativo – o destino final de comandos sem tratamento.

Confira também

Como o Framework chama um manipulador