Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ihre Verantwortung beim Arbeiten mit Befehlen ist darauf beschränkt, Nachrichtenzuordnungsverbindungen zwischen Befehlen und deren Handlerfunktionen herzustellen, eine Aufgabe, für die Sie den MFC-Klassen-Assistenten verwenden. Sie müssen auch den Code für die Befehlshandler schreiben.
Windows-Nachrichten werden in der Regel an das Hauptframefenster gesendet, aber Befehlsmeldungen werden dann an andere Objekte weitergeleitet. Das Framework leitet Befehle über eine Standardsequenz von Befehlszielobjekten weiter, von denen erwartet wird, dass ein Handler für den Befehl vorhanden ist. Jedes Befehlszielobjekt überprüft seine Nachrichtenzuordnung, um festzustellen, ob es die eingehende Nachricht verarbeiten kann.
Verschiedene Befehlszielklassen überprüfen ihre eigenen Meldungszuordnungen zu unterschiedlichen Zeitpunkten. In der Regel leitet eine Klasse den Befehl an bestimmte andere Objekte weiter, um ihnen beim Befehl die erste Chance zu geben. Wenn keiner dieser Objekte den Befehl behandelt, überprüft die ursprüngliche Klasse ihre eigene Nachrichtenzuordnung. Wenn sie dann keinen Handler selbst bereitstellen kann, kann er den Befehl an noch weitere Befehlsziele weiterleiten. In der tabelle "Standard Command Route " unten wird gezeigt, wie die einzelnen Klassen diese Sequenz strukturieren. Die allgemeine Reihenfolge, in der ein Befehlsziel einen Befehl weiterleitet, ist:
An sein derzeit aktives untergeordnetes Befehlszielobjekt.
An sich selbst.
An andere Befehlsziele.
Wie teuer ist dieser Routingmechanismus Im Vergleich zu dem, was Ihr Handler als Reaktion auf einen Befehl ausführt, ist die Kosten für das Routing niedrig. Denken Sie daran, dass das Framework Befehle nur generiert, wenn der Benutzer mit einem Benutzeroberflächenobjekt interagiert.
Standardbefehlsroute
| Wenn ein Objekt dieses Typs einen Befehl empfängt. . . | Es bietet sich selbst und anderen Befehlszielobjekten die Möglichkeit, den Befehl in dieser Reihenfolge zu behandeln: |
|---|---|
MDI Frame Fenster (CMDIFrameWnd) |
1. Aktiv CMDIChildWnd2. Dieses Rahmenfenster 3. Anwendung ( CWinApp Objekt) |
Dokumentrahmenfenster (CFrameWnd, CMDIChildWnd) |
1. Aktive Ansicht 2. Dieses Rahmenfenster 3. Anwendung ( CWinApp Objekt) |
| Ansicht | 1. Diese Ansicht 2. Dokument, das an die Ansicht angefügt ist |
| Dokument | 1. Dieses Dokument 2. Dokumentvorlage, die an das Dokument angefügt ist |
| Dialogfeld | 1. Dieses Dialogfeld 2. Fenster, das das Dialogfeld besitzt 3. Anwendung ( CWinApp Objekt) |
Wenn nummerierte Einträge in der zweiten Spalte der vorherigen Tabelle andere Objekte, z. B. ein Dokument, erwähnen, sehen Sie sich das entsprechende Element in der ersten Spalte an. Wenn Sie beispielsweise in der zweiten Spalte lesen, dass die Ansicht einen Befehl an das Dokument weiterleitet, lesen Sie den Eintrag "Dokument" in der ersten Spalte, um die Weiterleitung weiter zu verfolgen.