CCmdUI-Klasse

Wird nur innerhalb eines Handlers ON_UPDATE_COMMAND_UI in einer CCmdTargetabgeleiteten Klasse verwendet.

Syntax

class CCmdUI

Member

Öffentliche Methoden

Name Beschreibung
CCmdUI::ContinueRouting Weist den Befehlsroutingmechanismus an, das Routing der aktuellen Nachricht über die Kette der Handler fortzusetzen.
CCmdUI::Enable Aktiviert oder deaktiviert das Benutzeroberflächenelement für diesen Befehl.
CCmdUI::SetCheck Legt den Prüfstatus des Benutzeroberflächenelements für diesen Befehl fest.
CCmdUI::SetRadio Wie die SetCheck Mitgliedsfunktion, aber auf Funkgruppen.
CCmdUI::SetText Legt den Text für das Element der Benutzeroberfläche für diesen Befehl fest.

Öffentliche Datenmember

Name Beschreibung
CCmdUI::m_nID Die ID des Benutzeroberflächenobjekts.
CCmdUI::m_nIndex Der Index des Benutzeroberflächenobjekts.
CCmdUI::m_pMenu Zeigt auf das Menü, das durch das CCmdUI Objekt dargestellt wird.
CCmdUI::m_pOther Verweist auf das Fensterobjekt, das die Benachrichtigung gesendet hat.
CCmdUI::m_pSubMenu Verweist auf das enthaltene Untermenü, das durch das CCmdUI Objekt dargestellt wird.

Hinweise

CCmdUI besitzt keine Basisklasse.

Wenn ein Benutzer Ihrer Anwendung ein Menü herunterzieht, muss jedes Menüelement wissen, ob es als aktiviert oder deaktiviert angezeigt werden soll. Das Ziel eines Menübefehls stellt diese Informationen bereit, indem ein ON_UPDATE_COMMAND_UI-Handler implementiert wird. Verwenden Sie für jedes Der Befehlsbenutzeroberflächenobjekte in Ihrer Anwendung das Fenster "Klassen-Assistent " oder "Eigenschaften " (in der Klassenansicht), um einen Meldungszuordnungseintrag und Funktionsprototyp für jeden Handler zu erstellen.

Wenn das Menü nach unten abgerufen wird, sucht das Framework nach und ruft jeden ON_UPDATE_COMMAND_UI-Handler auf, jeder Handler ruft CCmdUI Memberfunktionen wie Enable und Check, und das Framework zeigt dann die einzelnen Menüelemente entsprechend an.

Ein Menüelement kann durch eine Steuerelementleistenschaltfläche oder ein anderes Befehlsbenutzeroberflächenobjekt ersetzt werden, ohne den Code innerhalb des ON_UPDATE_COMMAND_UI Handlers zu ändern.

In der folgenden Tabelle sind die Memberfunktionen des Effekts CCmdUIauf verschiedenen Befehlsbenutzeroberflächenelementen zusammengefasst.

Benutzeroberflächenelement Aktivieren SetCheck SetRadio SetText
Menüelement Aktiviert oder deaktiviert Aktiviert oder deaktiviert Überprüft mithilfe eines Punkts Legt Elementtext fest
Symbolleistenschaltfläche Aktiviert oder deaktiviert Auswahlen, Aufheben der Auswahl oder Unbestimmtheit Identisch mit SetCheck (Nicht vorhanden)
Statusleistenbereich Macht Text sichtbar oder unsichtbar Legt Popup- oder normaler Rahmen fest Identisch mit SetCheck Legt Bereichstext fest
Schaltfläche "Normal" in CDialogBar Aktiviert oder deaktiviert Kontrollkästchen aktiviert oder deaktiviert Identisch mit SetCheck Festlegen von Schaltflächentext
Normales Steuerelement in CDialogBar Aktiviert oder deaktiviert (Nicht vorhanden) (Nicht vorhanden) Legt Fenstertext fest

Weitere Informationen zur Verwendung dieser Klasse finden Sie unter How to Update User-Interface Objects.For more on the use of this class, see How to Update User-Interface Objects.

Vererbungshierarchie

CCmdUI

Anforderungen

Header: afxwin.h

CCmdUI::ContinueRouting

Rufen Sie diese Memberfunktion auf, um den Befehlsroutingmechanismus anzufordern, das Routing der aktuellen Nachricht in der Kette der Handler fortzusetzen.

void ContinueRouting();

Hinweise

Dies ist eine erweiterte Memberfunktion, die in Verbindung mit einem ON_COMMAND_EX-Handler verwendet werden soll, der FALSE zurückgibt. Weitere Informationen finden Sie in technischem Hinweis 6.

CCmdUI::Enable

Rufen Sie diese Memberfunktion auf, um das Benutzeroberflächenelement für diesen Befehl zu aktivieren oder zu deaktivieren.

virtual void Enable(BOOL bOn = TRUE);

Parameter

Bön
TRUE, um das Element zu aktivieren, FALSE, um es zu deaktivieren.

Beispiel

ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, &CMyDoc::OnUpdateFileSave)

 

void CMyDoc::OnUpdateFileSave(CCmdUI *pCmdUI)
{
   // Enable the menu item if the file has been modified.
   pCmdUI->Enable(m_bModified);
}

CCmdUI::m_nID

Die ID des Menüelements, der Symbolleistenschaltfläche oder eines anderen vom Objekt dargestellten CCmdUI Benutzeroberflächenobjekts.

UINT m_nID;

CCmdUI::m_nIndex

Der Index des Menüelements, der Symbolleistenschaltfläche oder eines anderen Vom Objekt dargestellten CCmdUI Benutzeroberflächenobjekts.

UINT m_nIndex;

CCmdUI::m_pMenu

Zeiger (vom CMenu Typ) auf das Durch das CCmdUI Objekt dargestellte Menü.

CMenu* m_pMenu;

Hinweise

NULL, wenn das Element kein Menü ist.

CCmdUI::m_pSubMenu

Zeiger (vom CMenu Typ) auf das enthaltene Untermenü, dargestellt durch das CCmdUI Objekt.

CMenu* m_pSubMenu;

Hinweise

NULL, wenn das Element kein Menü ist. Wenn das Untermenü ein Popup ist, enthält m_nID die ID des ersten Elements im Popupmenü. Weitere Informationen finden Sie in technischem Hinweis 21.

CCmdUI::m_pOther

Zeiger (vom Typ CWnd) auf das Fensterobjekt, z. B. ein Tool oder eine Statusleiste, die die Benachrichtigung gesendet hat.

CWnd* m_pOther;

Hinweise

NULL, wenn es sich bei dem Element um ein Menü oder ein Nicht-Objekt CWnd handelt.

CCmdUI::SetCheck

Rufen Sie diese Memberfunktion auf, um das Benutzeroberflächenelement für diesen Befehl auf den entsprechenden Überprüfungszustand festzulegen.

virtual void SetCheck(int nCheck = 1);

Parameter

nCheck
Gibt den festzulegenden Überprüfungsstatus an. Wenn 0, deaktivieren Sie die Kontrollkästchen; wenn 1, Überprüfungen; und wenn 2, legt sie unbestimmt fest.

Hinweise

Diese Memberfunktion funktioniert für Menüelemente und Symbolleistenschaltflächen. Der unbestimmte Zustand gilt nur für Symbolleistenschaltflächen.

CCmdUI::SetRadio

Rufen Sie diese Memberfunktion auf, um das Benutzeroberflächenelement für diesen Befehl auf den entsprechenden Überprüfungszustand festzulegen.

virtual void SetRadio(BOOL bOn = TRUE);

Parameter

Bön
TRUE, um das Element zu aktivieren; andernfalls FALSE.

Hinweise

Diese Memberfunktion funktioniert wie SetCheck, außer dass sie auf Benutzeroberflächenelementen ausgeführt wird, die als Teil einer Funkgruppe fungieren. Das Deaktivieren der anderen Elemente in der Gruppe erfolgt nicht automatisch, es sei denn, die Elemente selbst behalten das Funkgruppenverhalten bei.

CCmdUI::SetText

Rufen Sie diese Memberfunktion auf, um den Text des Benutzeroberflächenelements für diesen Befehl festzulegen.

virtual void SetText(LPCTSTR lpszText);

Parameter

lpszText
Ein Zeiger auf eine Textzeichenfolge.

Beispiel

void CMyRichEditView::OnUpdateLineNumber(CCmdUI *pCmdUI)
{
   int nLine = GetRichEditCtrl().LineFromChar(-1) + 1;

   CString string;
   string.Format(_T("Line %d"), nLine);
   pCmdUI->Enable(TRUE);
   pCmdUI->SetText(string);
}

Siehe auch

MFC-Beispiel-MDI
Hierarchiediagramm
CCmdTarget-Klasse