Compartilhar via


Roteamento de comando

Sua responsabilidade em trabalhar com comandos é limitada a fazer conexões de mapa de mensagens entre comandos e suas 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, um dos quais deve ter um manipulador para o comando. Cada objeto de destino de comando verifica seu mapa de mensagens para ver se ele pode lidar com a mensagem de entrada.

Classes de destino de comando diferentes verificam seus próprios mapas de mensagens em horários diferentes. Normalmente, uma classe roteia o comando para determinados outros 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 alvo de comando roteia um comando é a seguinte:

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

  2. Para ele próprio.

  3. Para outros destinos de comando.

Quão caro é este mecanismo de roteamento? Em comparação com o que o 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.

Rota 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 lidar com o comando nesta ordem:
Janela do quadro MDI (CMDIFrameWnd) 1. Ativo CMDIChildWnd
2. Esta janela do quadro
3. Aplicativo (CWinApp objeto)
Janela do quadro do documento (CFrameWnd,CMDIChildWnd) 1. Exibição ativa
2. Esta janela do quadro
3. Aplicativo (CWinApp objeto)
Visualizar 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 (CWinApp objeto)

Quando as entradas numeradas na segunda coluna da tabela anterior mencionam 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.

Consulte também

Como o framework chama um manipulador