Roteamento de comando

Sua responsabilidade em trabalhar com comandos é limitada a fazer conexões de mapa de mensagens entre comandos e as respectivas funções de manipulador, uma tarefa para a qual você usa o Assistente de Classe MFC. Você também deve escrever o código para os manipuladores de comando.

As mensagens do Windows geralmente são enviadas para a janela de quadro principal, mas as mensagens de comando são roteadas para outros objetos. A estrutura roteia comandos por meio de uma sequência padrão de objetos de destino de comando, e espera-se que um deles tenha um manipulador para o comando. Cada objeto de destino de comando verifica se o respectivo mapa de mensagens pode lidar com a mensagem de entrada.

Classes de destino de comando diferentes verificam os próprios mapas de mensagens em momentos diferentes. Normalmente, uma classe roteia o comando para certos objetos para dar a eles a primeira chance no comando. Se nenhum desses objetos manipular o comando, a classe original verificará seu próprio mapa de mensagens. Em seguida, se ela mesma não puder fornecer um manipulador, ela poderá rotear o comando para ainda mais destinos de comando. A tabela Rota de comando padrão abaixo mostra como cada uma das classes estrutura essa sequência. A ordem geral na qual um destino de comando roteia um comando é:

  1. Para o objeto de destino de comando filho ativo no momento.

  2. Para ele próprio.

  3. Para outros destinos de comando.

Quanto custa este mecanismo de roteamento Comparado ao que o seu manipulador faz em resposta a um comando, o custo do roteamento é baixo. Tenha em mente que a estrutura gera comandos somente quando o usuário interage com um objeto de interface do usuário.

Roteamento de comando padrão

Quando um objeto desse tipo recebe um comando. . . Ele oferece a si mesmo e a outros objetos de destino de comando a chance de manipular o comando nesta ordem:
Janela do quadro MDI (CMDIFrameWnd) 1. Ativo CMDIChildWnd
2. Esta janela do quadro
3. Aplicativo (objetoCWinApp)
Janela do quadro do documento (CFrameWnd,CMDIChildWnd) 1. Exibição ativa
2. Esta janela do quadro
3. Aplicativo (objetoCWinApp)
Modo de exibição 1. Este modo de exibição
2. Documento anexado ao modo de exibição
Documento 1. Este documento
2. Modelo de documento anexado ao documento
Caixa de diálogo 1. Esta caixa de diálogo
2. Janela que possui a caixa de diálogo
3. Aplicativo (objetoCWinApp)

Quando as entradas numeradas na segunda coluna da tabela anterior mencionarem outros objetos, como um documento, consulte o item correspondente na primeira coluna. Por exemplo, ao ler na segunda coluna que o modo de exibição encaminha um comando para o documento, consulte a entrada "Documento" na primeira coluna para encaminhar o roteamento mais adiante.

Confira também

Como o Framework chama um manipulador