Befehls-Routing

Die Verantwortlichkeiten beim Arbeiten mit Befehlen wird zum Herstellen von Meldungszuordnungs beziehungen zwischen Befehle und ihren Handlerfunktionen beschränkt, für die eine Aufgabe das Eigenschaftenfenster verwenden.Sie müssen die meisten Befehlshandler auch schreiben.

Windows-Meldungen werden normalerweise dem Hauptrahmenfenster gesendet, aber Befehls Meldungen werden anschließend auf andere Objekte weitergeleitet.Das Framework wird durch eine Sequenz von Befehlen Befehl Ziel Objekten, von denen eines erwartet wird, einen Handler für den Befehl haben.Jeder Befehl Ziel Objekt überprüft die Meldungszuordnung, um festzustellen, ob er die eingehende Nachricht verarbeiten kann.

Verschiedene Befehl Ziel Klassen Meldungszuordnungen eigene Überprüfung zu unterschiedlichen Zeiten.In der Regel leitet eine Klasse den Befehl bestimmten anderen Objekten weiter, ihnen erste Möglichkeit für den Befehl zu vermitteln.Wenn keines dieser Objekte den Befehl behandelt, überprüft die ursprüngliche Klasse eine eigene Meldungszuordnung.Wenn es einen Handler nicht bereitstellen kann, selbst, leitet sie möglicherweise den Befehl jedoch mehr Ziele Befehls.Die folgende Tabelle zeigt, wie jede der Klassen Standardwert befehls-Route strukturen diese Sequenz an.Die übliche Reihenfolge, in der das Befehlsziel einen Befehl verläuft, ist:

  1. So fügen Sie dem derzeit aktiven untergeordneten Befehl Ziel Objekt.

  2. Um.

  3. So fügen Sie einen anderen Befehl zielen.

Ist dieser Mechanismus zur Weiterleitung wie teuer?Verglichen mit, welche Ihr Handler als Reaktion auf einen Befehl ausführt, sind die Kosten des Routings niedrig.Bedenken Sie, dass das Framework Befehle generiert nur, wenn der Benutzer auf ein Benutzeroberflächenelement Objekt interagiert.

Standardwert befehls-Route

Wenn ein Objekt dieses Typs einen Befehl empfängt...

Es gibt und andere Befehl Ziel Objekte eine Möglichkeit, den Befehl in dieser Reihenfolge zu behandeln:

MDI-Rahmenfenster (CMDIFrameWnd)

  1. Aktives CMDIChildWnd

  2. Dieses Rahmenfenster

  3. Anwendung (CWinApp-Objekt)

Dokumentrahmenfenster (CFrameWnd, CMDIChildWnd)

  1. Der aktive Ansicht

  2. Dieses Rahmenfenster

  3. Anwendung (CWinApp-Objekt)

Ansicht

  1. Diese Sicht

  2. Dokument angefügten zur Ansicht

Document

  1. Dieses Dokument

  2. Dokumentvorlage an das Dokument angefügten

Dialogfeld

  1. Dieses Dialogfeld

  2. Fenster, das das Dialogfeld besitzt

  3. Anwendung (CWinApp-Objekt)

Bei nummerierten Einträge in der zweiten Spalte der vorangehenden Tabellen erwähnung andere Objekte, z. B. ein Dokument, das entsprechende Element in der ersten Spalte angezeigt.Wenn Sie beispielsweise in die zweite Spalte gelesen wird, dass die Ansicht eines Befehls an das Dokument weiterleitet, finden Sie im Eintrag" Dokumente "in der ersten Spalte, um weiterleiten weiter zu befolgen.

Siehe auch

Konzepte

Wie das Framework einen Handler aufruft