Partager via


Routage de commandes

La responsabilité lorsque vous utilisez des commandes est limitée à l'établissement de connexions pour les mappages de messages entre les commandes et leurs fonctions, une tâche pour lesquelles vous utilisez la fenêtre Propriétés. Vous devez également écrire la plupart des gestionnaires de commandes.

Les messages windows sont généralement envoyés dans la fenêtre cadre principale, mais les messages de commande sont ensuite routés à d'autres objets. Il est prévu que l'infrastructure achemine les commandes via une séquence standard d'objets cibles de la commande, dont l'un est un responsable de la commande. Chaque objet de la cible de la commande active la table des messages pour voir s'il peut traiter le message entrant.

Les différentes classes de cible de la commande activent leurs propres tables des messages à des moments différents. En général, une classe route la commande à certains objets pour leur donner la première occasion de la commande. Si aucun de ces objets ne gère la commande, la classe d'origine vérifie son propre mappage de message. Ensuite, s'il ne peut pas fournir un gestionnaire lui-même, il peut aiguiller la commande à plus de cibles de la commande. La table Itinéraire standard de commande au-dessous de l'attribut indique comment chaque classe structure cette séquence. L'ordre général dans laquelle une cible commandée guide une commande est :

  1. À son actuellement actif objet enfant actif de cible de la commande.

  2. À lui-même.

  3. D'autres cibles de la commande.

Quel est le coût du mécanisme de routage ? Comparé à ce que le gestionnaire fait en réponse à une commande, le coût de routage est insuffisant. Considérez que l'infrastructure génère des commandes uniquement si l'utilisateur interagit avec un objet d'interface utilisateur.

Routage des commandes standart

Lorsqu'un objet de ce type accepte une commande. . .

Il se donne à lui-même et une autre cible de la commande objet une chance de gérer la commande dans cet ordre.

Fênetre cadre MDI (CMDIFrameWnd)

  1. Active CMDIChildWnd

  2. Cette fenêtre cadre

  3. Objet Application (CWinApp )

fenêtres frame de document (CFrameWnd, CMDIChildWnd)

  1. Vue active

  2. Cette fenêtre cadre

  3. Objet Application (CWinApp )

Vue

  1. Cette vue

  2. Document associé à la vue

Document

  1. Ce document

  2. Modèle de document joint au document

Boîte de dialogue

  1. Cette boîte de dialogue.

  2. Fenêtre propriétaire de la boîte de dialogue

  3. Objet Application (CWinApp )

Où sont comptés les entrées dans la deuxième colonne de la mention précédente de la table d'autres objets, tel qu'un document, consultez l'élément correspondant dans la première colonne. Par exemple, lorsque vous lisez dans la deuxième colonne de la vue qu'elle envoie une commande de documents, consultez l'entrée « document » dans la première colonne pour suivre le routage ultérieur.

Voir aussi

Concepts

comment l'infrastructure appelle un gestionnaire