Freigeben über


Wann müssen Updatehandler aufgerufen werden?

Nehmen wir der Benutzer die Maus im Menü Datei an, die eine Meldung WM_INITMENUPOPUP generiert. Der Aktualisierungsmechanismus des Framework aktualisiert zusammen alle Elemente im Menü Datei, bevor das Menü unten zurückgestellt, damit der Benutzer sie finden kann.

Aufgabe, die Frameworkrouten-Updatebefehle für alle Menüelemente im Popupmenü entlang dem Standardbefehlsrouting. Befehlsziele im Routing haben die Möglichkeit, alle Menüelemente zu aktualisieren, indem der Updates-Befehl mit einem entsprechenden Eintrag in der Meldungszuordnung des Formulars ( ON_UPDATE_COMMAND_UI) entsprechen und eine "Aktualisierungshandler" Funktion aufrufen. Somit für ein Menü mit sechs Menüelementen, werden sechs Aktualisierungsbefehle gesendet. Wenn ein Aktualisierungshandler für die Befehls-ID des Menüelements vorhanden, wird jedoch aufgerufen, um die Aktualisierung durchzuführen. Wenn nicht, überprüft das Framework das Vorhandensein eines Handlers für diese Befehls-ID und aktiviert oder deaktiviert das Menüelement nach Bedarf.

Wenn das Framework ON_UPDATE_COMMAND_UI einen Eintrag nicht während des Befehlsroutings findet, können es automatisch das Benutzeroberflächeobjekt, wenn ein Eintrag mit ON_COMMAND an derselben Befehl ID gibt Andernfalls deaktiviert das Benutzeroberflächeobjekt. Um sicherzustellen, dass ein Benutzeroberflächeobjekt aktiviert ist, stellen Sie einen Handler für den Befehl, den das Objekt generiert bereit oder erstellen Sie einen Aktualisierungshandler dafür bereit. Siehe die Abbildung im Thema Benutzeroberfläche-Objekte und Befehls-IDs.

Es ist möglich, das Standarddeaktivieren von Benutzeroberflächenobjekten zu deaktivieren. Weitere Informationen finden Sie im m_bAutoMenuEnable-Member der CFrameWnd-Klasse in der MFC-Referenz.

Menüinitialisierung ist im Framework automatisch und wird ausgelöst, wenn die Anwendung eine Meldung empfängt. WM_INITMENUPOPUP Während der Leerlaufschleife sucht das Framework Befehlsrouting für Schaltflächenaktualisierungshandler, ebenso wie es für Menüs bewirkt.

Siehe auch

Konzepte

Gewusst wie: Aktualisieren von Benutzeroberflächenobjekten