Partilhar via


Roteamento de comandos

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 do quadro principal, mas as mensagens de comando são então roteadas para outros objetos. A estrutura roteia comandos através de uma sequência padrão de objetos command-target, 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.

Diferentes classes de destino de comando verificam seus próprios mapas de mensagens em momentos diferentes. Normalmente, uma classe roteia o comando para determinados outros objetos para dar-lhes 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 ele não puder fornecer um manipulador em si, ele poderá rotear o comando para ainda mais destinos de comando. A tabela Standard Command Route abaixo mostra como cada uma das classes estrutura essa sequência. A ordem geral na qual um alvo de comando encaminha um comando é:

  1. Para seu objeto de destino-comando filho atualmente ativo.

  2. Para si próprio.

  3. Para outros objetivos de comando.

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

Rota de comando padrão

Quando um objeto desse tipo recebe um comando . . . Ele dá a si mesmo e a outros objetos de destino de comando a chance de manipular o comando nesta ordem:
Janela de moldura MDI (CMDIFrameWnd) 1. Ativo CMDIChildWnd
2. Esta janela de moldura
3. Aplicação (CWinApp objeto)
Janela da moldura do documento (CFrameWnd, CMDIChildWnd) 1. Vista ativa
2. Esta janela de moldura
3. Aplicação (CWinApp objeto)
Visualizar 1. Este ponto de vista
2. Documento anexado à vista
Documento 1. O presente documento
2. Modelo de documento anexado ao documento
Caixa de diálogo 1. Esta caixa de diálogo
Janela que possui a caixa de diálogo
3. Aplicação (CWinApp objeto)

Quando as entradas numeradas na segunda coluna do quadro anterior mencionarem outros objetos, como um documento, ver o item correspondente na primeira coluna. Por exemplo, quando se lê na segunda coluna que a vista encaminha um comando para o seu documento, consulte a entrada "Documento" na primeira coluna para seguir o encaminhamento mais adiante.

Ver também

Como o framework chama um manipulador