CCmdUI-Klasse
Wird nur innerhalb eines Handlers ON_UPDATE_COMMAND_UI
in einer CCmdTarget
abgeleiteten 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 CCmdUI
auf 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);
}