CMFCToolBarsCustomizeDialog-Klasse
Ein dialogfeld ohne Modus ( CPropertySheet-Klasse), mit dem der Benutzer die Symbolleisten, Menüs, Tastenkombinationen, benutzerdefinierte Tools und visuelle Formatvorlagen in einer Anwendung anpassen kann. In der Regel greift der Benutzer durch Auswählen von Anpassen im Menü Tools auf dieses Dialogfeld zu.
Das Dialogfeld "Anpassen" enthält sechs Registerkarten: Befehle, Symbolleisten, Tools, Tastatur, Menü und Optionen.
Syntax
class CMFCToolBarsCustomizeDialog : public CPropertySheet
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog | Erstellt ein CMFCToolBarsCustomizeDialog -Objekt. |
CMFCToolBarsCustomizeDialog::~CMFCToolBarsCustomizeDialog |
Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CMFCToolBarsCustomizeDialog::AddButton | Fügt eine Symbolleistenschaltfläche in die Liste der Befehle auf der Befehlsseite ein. |
CMFCToolBarsCustomizeDialog::AddMenu | Lädt ein Menü aus den Ressourcen und ruft CMFCToolBarsCustomizeDialog::AddMenuCommands auf, um dieses Menü der Liste der Befehle auf der Befehlsseite hinzuzufügen. |
CMFCToolBarsCustomizeDialog::AddMenuCommands | Lädt ein Menü aus den Ressourcen und ruft CMFCToolBarsCustomizeDialog::AddMenuCommands auf, um dieses Menü der Liste der Befehle auf der Befehlsseite hinzuzufügen. |
CMFCToolBarsCustomizeDialog::AddToolBar | Lädt eine Symbolleiste aus den Ressourcen. Anschließend ruft für jeden Befehl im Menü die CMFCToolBarsCustomizeDialog::AddButton-Methode auf, um eine Schaltfläche in die Liste der Befehle auf der Befehlsseite unter der angegebenen Kategorie einzufügen. |
CMFCToolBarsCustomizeDialog::Create | Zeigt das Dialogfeld "Anpassung" an. |
CMFCToolBarsCustomizeDialog::EnableTools |
Für die zukünftige Verwendung reserviert. |
CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars | Aktiviert oder deaktiviert das Erstellen neuer Symbolleisten mithilfe des Dialogfelds "Anpassen ". |
CMFCToolBarsCustomizeDialog::FillAllCommandsList | Füllt das bereitgestellte CListBox Objekt mit den Befehlen in der Kategorie "Alle Befehle" auf. |
CMFCToolBarsCustomizeDialog::FillCategoriesComboBox | Füllt das bereitgestellte CComboBox Objekt mit dem Namen jeder Befehlskategorie im Dialogfeld "Anpassen " auf. |
CMFCToolBarsCustomizeDialog::FillCategoriesListBox | Füllt das bereitgestellte CListBox Objekt mit dem Namen jeder Befehlskategorie im Dialogfeld "Anpassen " auf. |
CMFCToolBarsCustomizeDialog::GetCommandName | Ruft den Namen ab, der der angegebenen Befehls-ID zugeordnet ist. |
CMFCToolBarsCustomizeDialog::GetCountInCategory | Ruft die Anzahl der Elemente in der bereitgestellten Liste ab, die eine bestimmte Textbezeichnung aufweisen. |
CMFCToolBarsCustomizeDialog::GetFlags | Ruft den Satz von Flags ab, die sich auf das Verhalten des Dialogfelds auswirken. |
CMFCToolBarsCustomizeDialog::GetThisClass |
Wird vom Framework verwendet, um einen Zeiger auf das CRuntimeClass -Objekt abzurufen, das diesem Klassentyp zugeordnet ist. |
CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage | Startet einen Bild-Editor, damit ein Benutzer eine Symbolleistenschaltfläche oder ein Menüelementsymbol anpassen kann. |
CMFCToolBarsCustomizeDialog::OnInitDialog | Außerkraftsetzungen zum Erweitern der Initialisierung des Eigenschaftenblatts. (Außerkraftsetzungen CPropertySheet::OnInitDialog.) |
CMFCToolBarsCustomizeDialog::P ostNcDestroy | Vom Framework aufgerufen, nachdem das Fenster zerstört wurde. (Überschreibt CPropertySheet::PostNcDestroy .) |
CMFCToolBarsCustomizeDialog::RemoveButton | Entfernt die Schaltfläche mit der angegebenen Befehls-ID aus der angegebenen Kategorie oder aus allen Kategorien. |
CMFCToolBarsCustomizeDialog::RenameCategory | Benennt eine Kategorie im Listenfeld der Kategorien auf der Registerkarte "Befehle " um. |
CMFCToolBarsCustomizeDialog::ReplaceButton | Ersetzt eine Schaltfläche in der Liste der Befehle auf der Registerkarte "Befehle " durch ein neues Symbolleistenschaltflächenobjekt. |
CMFCToolBarsCustomizeDialog::SetUserCategory | Fügt eine Kategorie zur Liste der Kategorien hinzu, die auf der Registerkarte "Befehle " angezeigt werden. |
Geschützte Methoden
Name | Beschreibung |
---|---|
CMFCToolBarsCustomizeDialog::CheckToolsValidity | Wird vom Framework aufgerufen, um zu bestimmen, ob die Liste der benutzerdefinierten Tools gültig ist. |
CMFCToolBarsCustomizeDialog::OnAfterChangeTool | Wird vom Framework aufgerufen, wenn sich die Eigenschaften eines benutzerdefinierten Tools ändern. |
CMFCToolBarsCustomizeDialog::OnAssignKey | Bestimmt, ob einer Aktion eine angegebene Tastenkombination zugewiesen werden kann. |
CMFCToolBarsCustomizeDialog::OnBeforeChangeTool | Bestimmt, ob ein benutzerdefiniertes Tool geändert werden kann. |
CMFCToolBarsCustomizeDialog::OnInitToolsPage | Wird vom Framework aufgerufen, wenn der Benutzer die Registerkarte "Extras " auswäht, wird angefordert. |
Hinweise
Zum Anzeigen des Dialogfelds "Anpassen " erstellen Sie ein CMFCToolBarsCustomizeDialog
Objekt, und rufen Sie die CMFCToolBarsCustomizeDialog::Create-Methode auf.
Während das Dialogfeld "Anpassen " aktiv ist, funktioniert die Anwendung in einem speziellen Modus, der den Benutzer auf Anpassungsaufgaben beschränkt.
Beispiel
Das folgende Beispiel veranschaulicht die Verwendung verschiedener Methoden in der CMFCToolBarsCustomizeDialog
-Klasse. Das Beispiel zeigt, wie Sie eine Symbolleistenschaltfläche im Listenfeld von Befehlen auf der Befehlsseite ersetzen, das Erstellen neuer Symbolleisten mithilfe des Dialogfelds "Anpassen" aktivieren und das Dialogfeld "Anpassung" anzeigen. Dieser Codeausschnitt ist Teil des IE-Demobeispiels.
pDlgCust->ReplaceButton(ID_FAVORITS_DUMMY,
CMFCToolBarMenuButton((UINT)-1, menuFavorites, -1, strFavorites));
pDlgCust->EnableUserDefinedToolbars();
pDlgCust->Create();
Vererbungshierarchie
CMFCToolBarsCustomizeDialog
Anforderungen
Header: afxToolBarsCustomizeDialog.h
CMFCToolBarsCustomizeDialog::AddButton
Fügt eine Symbolleistenschaltfläche in die Liste der Befehle auf der Befehlsseite ein.
void AddButton(
UINT uiCategoryId,
const CMFCToolBarButton& button,
int iInsertBefore=-1);
void AddButton(
LPCTSTR lpszCategory,
const CMFCToolBarButton& button,
int iInsertBefore=-1);
Parameter
uiCategoryId
[in] Gibt die Kategorie-ID an, in die die Schaltfläche eingefügt werden soll.
Schaltfläche
[in] Gibt die einzufügende Schaltfläche an.
iInsertBefore
[in] Gibt den nullbasierten Index einer Symbolleistenschaltfläche an, vor der die Schaltfläche eingefügt wird.
lpszCategory
[in] Gibt die Kategoriezeichenfolge an, mit der die Schaltfläche eingefügt werden soll.
Hinweise
Die AddButton
Methode ignoriert Schaltflächen mit den Standardbefehls-IDs (z. B. ID_FILE_MRU_FILE1), nicht zulässigen Befehlen (siehe CMFCToolBar::IsCommandPermitted) und Dummy-Schaltflächen.
Diese Methode erstellt ein neues Objekt desselben Typs wie button
(in der Regel eine CMFCToolBarButton-Klasse) mithilfe der Laufzeitklasse der Schaltfläche. Anschließend wird CMFCToolBarButton::CopyFrom aufgerufen, um die Datenmmber der Schaltfläche zu kopieren, und fügt die Kopie in die angegebene Kategorie ein.
Wenn die neue Schaltfläche eingefügt wird, empfängt sie die OnAddToCustomizePage
Benachrichtigung.
Wenn iInsertBefore
-1 ist, wird die Schaltfläche an die Liste der Kategorien angefügt. Andernfalls wird sie vor dem Element mit dem angegebenen Index eingefügt.
Beispiel
Im folgenden Beispiel wird die Verwendung der AddButton
Methode der CMFCToolBarsCustomizeDialog
Klasse veranschaulicht. Dieser Codeausschnitt ist Teil des Slider-Beispiels.
CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
TRUE /* Automatic menus scaning */);
CSliderButton btnSlider(ID_SLIDER);
btnSlider.SetRange(0, 100);
pDlgCust->AddButton(_T("Edit"), btnSlider);
CMFCToolBarsCustomizeDialog::AddMenu
Lädt ein Menü aus den Ressourcen und ruft CMFCToolBarsCustomizeDialog::AddMenuCommands auf, um dieses Menü der Liste der Befehle auf der Befehlsseite hinzuzufügen.
BOOL AddMenu(UINT uiMenuResId);
Parameter
uiMenuResId
[in] Gibt die Ressourcen-ID eines zu ladenden Menüs an.
Rückgabewert
TRUE, wenn ein Menü erfolgreich hinzugefügt wurde; andernfalls FALSE.
Hinweise
Im Aufruf von AddMenuCommands
" bPopup " lautet "FALSE". Daher fügt diese Methode der Liste der Befehle keine Menüelemente hinzu, die Untermenüs enthalten. Diese Methode fügt die Menüelemente im Untermenü zur Liste der Befehle hinzu.
CMFCToolBarsCustomizeDialog::AddMenuCommands
Fügt der Liste der Befehle auf der Befehlsseite Elemente hinzu, um alle Elemente im angegebenen Menü darzustellen.
void AddMenuCommands(
const CMenu* pMenu,
BOOL bPopup,
LPCTSTR lpszCategory=NULL,
LPCTSTR lpszMenuPath=NULL);
Parameter
pMenu
[in] Ein Zeiger auf das hinzuzufügende CMenu-Objekt.
bPopup
[in] Gibt an, ob die Popupmenüelemente in die Liste der Befehle eingefügt werden sollen.
lpszCategory
[in] Der Name der Kategorie zum Einfügen des Menüs.
lpszMenuPath
[in] Ein Präfix, das dem Namen hinzugefügt wird, wenn der Befehl in der Liste "Alle Kategorien" angezeigt wird.
Hinweise
Die AddMenuCommands
Methode durchläuft alle Menüelemente von pMenu. Für jedes Menüelement, das kein Untermenü enthält, erstellt diese Methode ein CMFCToolBarButton Class-Objekt und ruft die CMFCToolBarsCustomizeDialog::AddButton-Methode auf, um das Menüelement als Symbolleistenschaltfläche zur Liste der Befehle auf der Befehlsseite hinzuzufügen. Trennzeichen werden in diesem Prozess ignoriert.
Wenn bPopup TRUE ist, erstellt diese Methode für jedes Menüelement, das ein Untermenü enthält, ein CMFCToolBarMenuButton-Klassenobjekt und fügt es durch Aufrufen AddButton
in die Liste der Befehle ein. Andernfalls werden Menüelemente, die Untermenüs enthalten, nicht in der Liste der Befehle angezeigt. In beiden Fällen AddMenuCommands
wird beim Auftreten eines Menüelements mit einem Untermenü rekursiv ein Zeiger auf das Untermenü übergeben und die Beschriftung des Untermenüs an lpszMenuPath angefügt.
CMFCToolBarsCustomizeDialog::AddToolBar
Lädt eine Symbolleiste aus den Ressourcen. Anschließend ruft für jeden Befehl im Menü die CMFCToolBarsCustomizeDialog::AddButton-Methode auf, um eine Schaltfläche in die Liste der Befehle auf der Befehlsseite unter der angegebenen Kategorie einzufügen.
BOOL AddToolBar(
UINT uiCategoryId,
UINT uiToolbarResId);
BOOL AddToolBar(
LPCTSTR lpszCategory,
UINT uiToolbarResId);
Parameter
uiCategoryId
[in] Gibt die Ressourcen-ID der Kategorie an, der die Symbolleiste hinzugefügt werden soll.
uiToolbarResId
[in] Gibt die Ressourcen-ID einer Symbolleiste an, deren Befehle in die Liste der Befehle eingefügt werden.
lpszCategory
[in] Gibt den Namen der Kategorie an, der die Symbolleiste hinzugefügt werden soll.
Rückgabewert
TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.
Beispiel
Im folgenden Beispiel wird die Verwendung der AddToolBar
Methode in der CMFCToolBarsCustomizeDialog
Klasse veranschaulicht. Dieser Codeausschnitt ist Teil des WordPad-Beispiels.
CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
TRUE /* Automatic menus scaning */,
AFX_CUSTOMIZE_MENU_SHADOWS | AFX_CUSTOMIZE_TEXT_LABELS |
AFX_CUSTOMIZE_MENU_ANIMATIONS);
pDlgCust->AddToolBar(_T("Format"), IDR_FORMATBAR);
Hinweise
Das Steuerelement, das zum Darstellen der einzelnen Befehle verwendet wird, ist ein CMFCToolBarButton Class-Objekt . Nachdem Sie die Symbolleiste hinzugefügt haben, können Sie die Schaltfläche durch ein Steuerelement eines abgeleiteten Typs ersetzen, indem Sie CMFCToolBarsCustomizeDialog::ReplaceButton aufrufen.
CMFCToolBarsCustomizeDialog::CheckToolsValidity
Überprüft die Gültigkeit der Liste der Benutzertools.
virtual BOOL CheckToolsValidity(const CObList& lstTools);
Parameter
lstTools
[in] Die Liste der zu überprüfenden benutzerdefinierten Tools.
Rückgabewert
Gibt TRUE zurück, wenn die Liste der benutzerdefinierten Tools gültig ist; andernfalls FALSE. Die Standardimplementierung gibt immer TRUE zurück.
Hinweise
Das Framework ruft diese Methode auf, um die Gültigkeit von Objekten zu überprüfen, die benutzerdefinierte Tools darstellen, die von CMFCToolBarsCustomizeDialog::CheckToolsValidity zurückgegeben werden.
Überschreiben Sie die CheckToolsValidity
Methode in einer von einer Klasse abgeleiteten CMFCToolBarsCustomizeDialog
Klasse, wenn Sie die Benutzertools überprüfen möchten, bevor der Benutzer das Dialogfeld schließt. Wenn diese Methode FALSE zurückgibt, wenn der Benutzer entweder in der oberen rechten Ecke des Dialogfelds auf die Schaltfläche "Schließen " klickt oder die Schaltfläche mit der Bezeichnung "Schließen " in der unteren rechten Ecke des Dialogfelds angezeigt wird, wird im Dialogfeld die Registerkarte "Extras " anstelle des Schließens angezeigt. Wenn diese Methode FALSE zurückgibt, wenn der Benutzer auf eine Registerkarte klickt, um von der Registerkarte "Extras " zu navigieren, tritt die Navigation nicht auf. Sie sollten ein entsprechendes Meldungsfeld anzeigen, um den Benutzer über das Problem zu informieren, das dazu führte, dass die Überprüfung fehlschlug.
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog
Erstellt ein CMFCToolBarsCustomizeDialog
-Objekt.
CMFCToolBarsCustomizeDialog(
CFrameWnd* pWndParentFrame,
BOOL bAutoSetFromMenus = FALSE,
UINT uiFlags = (AFX_CUSTOMIZE_MENU_SHADOWS | AFX_CUSTOMIZE_TEXT_LABELS | AFX_CUSTOMIZE_MENU_ANIMATIONS | AFX_CUSTOMIZE_NOHELP),
CList <CRuntimeClass*, CRuntimeClass*>* p listCustomPages = NULL);
Parameter
pWndParentFrame
[in] Ein Zeiger auf den übergeordneten Frame. Dieser Parameter darf nicht NULL sein.
bAutoSetFromMenus
[in] Ein boolescher Wert, der angibt, ob die Menübefehle aus allen Menüs zur Liste der Befehle auf der Befehlsseite hinzugefügt werden sollen. Wenn dieser Parameter TRUE ist, werden die Menübefehle hinzugefügt. Andernfalls werden die Menübefehle nicht hinzugefügt.
uiFlags
[in] Eine Kombination von Kennzeichen, die sich auf das Verhalten des Dialogfelds auswirken. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen:
AFX_CUSTOMIZE_MENU_SHADOWS
AFX_CUSTOMIZE_TEXT_LABELS
AFX_CUSTOMIZE_MENU_ANIMATIONS
AFX_CUSTOMIZE_NOHELP
AFX_CUSTOMIZE_CONTEXT_HELP
AFX_CUSTOMIZE_NOTOOLS
AFX_CUSTOMIZE_MENUAMPERS
AFX_CUSTOMIZE_NO_LARGE_ICONS
plistCustomPages
[in] Ein Zeiger auf eine Liste von CRuntimeClass
Objekten, die zusätzliche benutzerdefinierte Seiten angeben.
Hinweise
Der Parameter "plistCustomPages " bezieht sich auf die Liste der CRuntimeClass
Objekte, die zusätzliche benutzerdefinierte Seiten angeben. Der Konstruktor fügt dem Dialogfeld mithilfe der CRuntimeClass::CreateObject-Methode weitere Seiten hinzu. Ein Beispiel, das dem Dialogfeld "Anpassen" weitere Seiten hinzufügt, finden Sie im CustomPages-Beispiel.
Weitere Informationen zu den Werten, die Sie im Parameter "uiFlags " übergeben können, finden Sie unter CMFCToolBarsCustomizeDialog::GetFlags.
Beispiel
Im folgenden Beispiel wird veranschaulicht, wie ein Objekt der CMFCToolBarsCustomizeDialog
Klasse erstellt wird. Dieser Codeausschnitt ist Teil des Beispiels "Benutzerdefinierte Seiten".
CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
TRUE /* Automatic menus scaning */,
AFX_CUSTOMIZE_MENU_SHADOWS | AFX_CUSTOMIZE_TEXT_LABELS |
AFX_CUSTOMIZE_MENU_ANIMATIONS, // default parameters
&lstCustomPages); // pointer to the list of runtime classes of the custom property pages
CMFCToolBarsCustomizeDialog::Create
Zeigt das Dialogfeld "Anpassung" an.
virtual BOOL Create();
Rückgabewert
TRUE, wenn das Eigenschaftenblatt zum Anpassen erfolgreich erstellt wird; andernfalls FALSE.
Hinweise
Rufen Sie die Create
Methode erst auf, nachdem Sie die Klasse vollständig initialisiert haben.
CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars
Aktiviert oder deaktiviert das Erstellen neuer Symbolleisten mithilfe des Dialogfelds "Anpassen ".
void EnableUserDefinedToolbars(BOOL bEnable=TRUE);
Parameter
bEnable
[in] TRUE, um die benutzerdefinierten Symbolleisten zu aktivieren; FALSE, um die Symbolleisten zu deaktivieren.
Hinweise
Wenn "bEnable " WAHR ist, werden die Schaltflächen "Neu", "Umbenennen " und "Löschen " auf der Symbolleistenseite angezeigt.
Wenn bEnable standardmäßig FALSCH ist, werden diese Schaltflächen nicht angezeigt, und der Benutzer kann keine neuen Symbolleisten definieren.
CMFCToolBarsCustomizeDialog::FillAllCommandsList
Füllt das bereitgestellte CListBox
Objekt mit den Befehlen in der Kategorie "Alle Befehle" auf.
virtual void FillAllCommandsList(CListBox& wndListOfCommands) const;
Parameter
wndListOfCommands
[out] Ein Verweis auf das CListBox
zu füllende Objekt.
Hinweise
Die Kategorie "Alle Befehle" enthält die Befehle aller Kategorien. Die CMFCToolBarsCustomizeDialog::AddButton-Methode fügt den Befehl hinzu, der der bereitgestellten Schaltfläche zur Kategorie "Alle Befehle" für Sie zugeordnet ist.
Diese Methode löscht den Inhalt des bereitgestellten CListBox
Objekts, bevor er mit den Befehlen in der Kategorie "Alle Befehle" auffüllt.
Die CMFCMousePropertyPage
Klasse verwendet diese Methode, um das Listenfeld für Doppelklickereignisse aufzufüllen.
CMFCToolBarsCustomizeDialog::FillCategoriesComboBox
Füllt das bereitgestellte CComboBox
Objekt mit dem Namen jeder Befehlskategorie im Dialogfeld "Anpassen " auf.
void FillCategoriesComboBox(
CComboBox& wndCategory,
BOOL bAddEmpty = TRUE) const;
Parameter
wndCategory
[out] Ein Verweis auf das CComboBox
zu füllende Objekt.
bAddEmpty
[in] Ein boolescher Wert, der angibt, ob dem Kombinationsfeld Kategorien hinzugefügt werden sollen, die nicht über Befehle verfügen. Wenn dieser Parameter WAHR ist, werden dem Kombinationsfeld leere Kategorien hinzugefügt. Andernfalls werden leere Kategorien nicht hinzugefügt.
Hinweise
Diese Methode ähnelt der CMFCToolBarsCustomizeDialog::FillCategoriesListBox-Methode , mit der Ausnahme, dass diese Methode mit einem CComboBox
Objekt funktioniert.
Diese Methode löscht den Inhalt des CComboBox
Objekts nicht, bevor es auffüllt. Sie garantiert, dass die Kategorie "Alle Befehle " das endgültige Element im Kombinationsfeld ist.
Sie können neue Befehlskategorien hinzufügen, indem Sie die CMFCToolBarsCustomizeDialog::AddButton-Methode verwenden. Sie können den Namen einer vorhandenen Kategorie mithilfe der CMFCToolBarsCustomizeDialog::RenameCategory-Methode ändern.
Die CMFCToolBarsKeyboardPropertyPage
klassen CMFCKeyMapDialog
verwenden diese Methode, um Tastaturzuordnungen zu kategorisieren.
CMFCToolBarsCustomizeDialog::FillCategoriesListBox
Füllt das bereitgestellte CListBox
Objekt mit dem Namen jeder Befehlskategorie im Dialogfeld "Anpassen " auf.
void FillCategoriesListBox(
CListBox& wndCategory,
BOOL bAddEmpty = TRUE) const;
Parameter
wndCategory
[out] Ein Verweis auf das CListBox
zu füllende Objekt.
bAddEmpty
[in] Ein boolescher Wert, der angibt, ob dem Listenfeld Kategorien hinzugefügt werden sollen, für die keine Befehle vorhanden sind. Wenn dieser Parameter WAHR ist, werden dem Listenfeld leere Kategorien hinzugefügt. Andernfalls werden leere Kategorien nicht hinzugefügt.
Hinweise
Diese Methode ähnelt der CMFCToolBarsCustomizeDialog::FillCategoriesComboBox-Methode , mit der Ausnahme, dass diese Methode mit einem CListBox
Objekt funktioniert.
Diese Methode löscht den Inhalt des CListBox
Objekts nicht, bevor es auffüllt. Sie garantiert, dass die Kategorie "Alle Befehle" das endgültige Element im Listenfeld ist.
Sie können neue Befehlskategorien hinzufügen, indem Sie die CMFCToolBarsCustomizeDialog::AddButton-Methode verwenden. Sie können den Namen einer vorhandenen Kategorie mithilfe der CMFCToolBarsCustomizeDialog::RenameCategory-Methode ändern.
Die CMFCToolBarsCommandsPropertyPage
Klasse verwendet diese Methode, um die Liste der Befehle anzuzeigen, die jeder Befehlskategorie zugeordnet sind.
CMFCToolBarsCustomizeDialog::GetCommandName
Ruft den Namen ab, der der angegebenen Befehls-ID zugeordnet ist.
LPCTSTR GetCommandName(UINT uiCmd) const;
Parameter
uiCmd
[in] Die ID des abzurufenden Befehls.
Rückgabewert
Der Name, der der angegebenen Befehls-ID zugeordnet ist, oder NULL, wenn der Befehl nicht vorhanden ist.
CMFCToolBarsCustomizeDialog::GetCountInCategory
Ruft die Anzahl der Elemente in der bereitgestellten Liste ab, die eine bestimmte Textbezeichnung aufweisen.
int GetCountInCategory(
LPCTSTR lpszItemName,
const CObList& lstCommands) const;
Parameter
lpszItemName
[in] Die zuzuordnende Textbezeichnung.
lstCommands
[in] Ein Verweis auf eine Liste, die Objekte enthält CMFCToolBarButton
.
Rückgabewert
Die Anzahl der Elemente in der bereitgestellten Liste, deren Textbezeichnung lpszItemName entspricht.
Hinweise
Jedes Element in der bereitgestellten Objektliste muss vom Typ CMFCToolBarButton
sein. Diese Methode vergleicht lpszItemName mit dem CMFCToolBarButton::m_strText-Datenmemm .
CMFCToolBarsCustomizeDialog::GetFlags
Ruft den Satz von Flags ab, die sich auf das Verhalten des Dialogfelds auswirken.
UINT GetFlags() const;
Rückgabewert
Der Satz von Flags, die sich auf das Verhalten des Dialogfelds auswirken.
Hinweise
Diese Methode ruft den Wert des uiFlags-Parameters ab, der an den Konstruktor übergeben wird. Der Rückgabewert kann einen oder mehrere der folgenden Werte sein:
Name | Beschreibung |
---|---|
AFX_CUSTOMIZE_MENU_SHADOWS | Ermöglicht es dem Benutzer, die Schattendarstellung des Menüs anzugeben. |
AFX_CUSTOMIZE_TEXT_LABELS | Ermöglicht dem Benutzer anzugeben, ob Textbeschriftungen unter den Symbolschaltflächenbildern angezeigt werden. |
AFX_CUSTOMIZE_MENU_ANIMATIONS | Ermöglicht es dem Benutzer, den Menüanimationsstil anzugeben. |
AFX_CUSTOMIZE_NOHELP | Entfernt die Hilfeschaltfläche aus dem Dialogfeld zum Anpassen. |
AFX_CUSTOMIZE_CONTEXT_HELP | Aktiviert die WS_EX_CONTEXTHELP visuellen Formatvorlage. |
AFX_CUSTOMIZE_NOTOOLS | Entfernt die Seite "Extras " aus dem Dialogfeld "Anpassung". Dieses Kennzeichen ist gültig, wenn ihre Anwendung die CUserToolsManager Klasse verwendet. |
AFX_CUSTOMIZE_MENUAMPERS | Ermöglicht die Anzeige von Schaltflächenbeschriftungen, die das Kaufmännische Und-Zeichen ( &) enthalten. |
AFX_CUSTOMIZE_NO_LARGE_ICONS | Entfernt die Option "Große Symbole " aus dem Dialogfeld "Anpassung". |
Weitere Informationen zum WS_EX_CONTEXTHELP visuellen Stils finden Sie unter "Erweiterte Fensterarten".
CMFCToolBarsCustomizeDialog::OnAfterChangeTool
Reagiert sofort nach dem Auftreten auf eine Änderung in einem Benutzertool.
virtual void OnAfterChangeTool(CUserTool* pSelTool);
Parameter
pSelTool
[in, out] Ein Zeiger auf das Benutzertoolobjekt, das geändert wurde.
Hinweise
Diese Methode wird vom Framework aufgerufen, wenn ein Benutzer die Eigenschaften eines benutzerdefinierten Tools ändert. Bei der Standardimplementierung wird keine Aktion ausgeführt. Überschreiben Sie diese Methode in einer Klasse, die von CMFCToolBarsCustomizeDialog
der Verarbeitung abgeleitet wurde, nachdem eine Änderung an einem Benutzertool erfolgt.
CMFCToolBarsCustomizeDialog::OnAssignKey
Überprüft Tastenkombinationen, wenn ein Benutzer sie definiert.
virtual BOOL OnAssignKey(ACCEL* pAccel);
Parameter
pAccel
[in, out] Zeigen Sie auf die vorgeschlagene Tastaturzuweisung, die als ACCEL-Struktur ausgedrückt wird.
Rückgabewert
TRUE, wenn der Schlüssel zugewiesen werden kann, oder FALSE, wenn der Schlüssel nicht zugewiesen werden kann. Die Standardimplementierung gibt immer TRUE zurück.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um eine zusätzliche Verarbeitung durchzuführen, wenn ein Benutzer eine neue Tastenkombination zuweist, oder um Tastenkombinationen zu überprüfen, während der Benutzer sie definiert. Um zu verhindern, dass eine Verknüpfung zugewiesen wird, geben Sie FALSE zurück. Sie sollten auch ein Meldungsfeld anzeigen oder den Benutzer anderweitig darüber informieren, warum die Tastenkombination abgelehnt wurde.
CMFCToolBarsCustomizeDialog::OnBeforeChangeTool
Führt benutzerdefinierte Verarbeitung durch, wenn eine Änderung an einem Benutzertool erfolgt, wenn der Benutzer eine Änderung anwendet.
virtual void OnBeforeChangeTool(CUserTool* pSelTool);
Parameter
pSelTool
[in, out] Ein Zeiger auf das Benutzertoolobjekt, das ersetzt werden soll.
Hinweise
Diese Methode wird vom Framework aufgerufen, wenn sich die Eigenschaften eines benutzerdefinierten Tools ändern. Bei der Standardimplementierung wird keine Aktion ausgeführt. Überschreiben Sie die OnBeforeChangeTool
Methode in einer von einer Klasse abgeleiteten CMFCToolBarsCustomizeDialog
Klasse, wenn Sie die Verarbeitung durchführen möchten, bevor eine Änderung an einem Benutzertool auftritt, z. B. das Freigeben von Ressourcen, die pSelTool verwendet.
CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage
Startet einen Bild-Editor, damit ein Benutzer eine Symbolleistenschaltfläche oder ein Menüelementsymbol anpassen kann.
virtual BOOL OnEditToolbarMenuImage(
CWnd* pWndParent,
CBitmap& bitmap,
int nBitsPerPixel);
Parameter
pWndParent
[in] Ein Zeiger auf das übergeordnete Fenster.
Bitmap
[in] Ein Verweis auf ein Bitmapobjekt, das bearbeitet werden soll.
nBitsPerPixel
[in] Bitmapfarbauflösung in Bits pro Pixel.
Rückgabewert
TRUE, wenn eine Änderung zugesichert wird; andernfalls FALSE. Die Standardimplementierung zeigt ein Dialogfeld an und gibt WAHR zurück, wenn der Benutzer auf "OK" klickt, oder "FALSE", wenn der Benutzer auf "Abbrechen" oder auf die Schaltfläche "Schließen" klickt.
Hinweise
Diese Methode wird vom Framework aufgerufen, wenn der Benutzer den Bild-Editor ausführt. Die Standardimplementierung zeigt das Dialogfeld CMFCImageEditorDialog-Klasse an. Überschreiben OnEditToolbarMenuImage
sie in einer abgeleiteten Klasse, um einen benutzerdefinierten Bild-Editor zu verwenden.
CMFCToolBarsCustomizeDialog::OnInitDialog
Außerkraftsetzungen zum Erweitern der Initialisierung des Eigenschaftenblatts.
virtual BOOL OnInitDialog();
Rückgabewert
Das Ergebnis des Aufrufs der CPropertySheet::OnInitDialog-Methode .
Hinweise
Diese Methode erweitert die Basisklassenimplementierung CPropertySheet ::OnInitDialog, indem die Schaltfläche "Schließen " angezeigt wird, indem Sie sicherstellen, dass das Dialogfeld der aktuellen Bildschirmgröße entspricht, und indem Sie die Schaltfläche "Hilfe " in die untere linke Ecke des Dialogfelds verschieben.
CMFCToolBarsCustomizeDialog::OnInitToolsPage
Behandelt die Benachrichtigung aus dem Framework, dass die Seite "Tools " gerade initialisiert werden soll.
virtual void OnInitToolsPage();
Hinweise
Bei der Standardimplementierung wird keine Aktion ausgeführt. Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um diese Benachrichtigung zu verarbeiten.
CMFCToolBarsCustomizeDialog::P ostNcDestroy
Vom Framework aufgerufen, nachdem das Fenster zerstört wurde.
virtual void PostNcDestroy();
Hinweise
Diese Methode erweitert die Basisklassenimplementierung, CPropertySheet::PostNcDestroy
indem die Anwendung im vorherigen Modus wiederhergestellt wird.
Die CMFCToolBarsCustomizeDialog::Create-Methode versetzt die Anwendung in einen speziellen Modus, der den Benutzer auf Anpassungsaufgaben beschränkt.
CMFCToolBarsCustomizeDialog::RemoveButton
Entfernt die Schaltfläche mit der angegebenen Befehls-ID aus der angegebenen Kategorie oder aus allen Kategorien.
int RemoveButton(
UINT uiCategoryId,
UINT uiCmdId);
int RemoveButton(
LPCTSTR lpszCategory,
UINT uiCmdId);
Parameter
uiCategoryId
[in] Gibt die Kategorie-ID an, aus der die Schaltfläche entfernt werden soll.
uiCmdId
[in] Gibt die Befehls-ID der Schaltfläche an.
lpszCategory
[in] Gibt den Namen der Kategorie an, aus der die Schaltfläche entfernt werden soll.
Rückgabewert
Der nullbasierte Index der entfernten Schaltfläche oder -1, wenn die angegebene Befehls-ID in der angegebenen Kategorie nicht gefunden wurde. Wenn uiCategoryId -1 ist, lautet der Rückgabewert 0.
Hinweise
Um eine Schaltfläche aus allen Kategorien zu entfernen, rufen Sie die erste Überladung dieser Methode auf, und legen Sie uiCategoryId auf -1 fest.
CMFCToolBarsCustomizeDialog::RenameCategory
Benennt eine Kategorie im Listenfeld der Kategorien auf der Befehlsseite um.
BOOL RenameCategory(
LPCTSTR lpszCategoryOld,
LPCTSTR lpszCategoryNew);
Parameter
lpszCategoryOld
[in] Der zu ändernde Kategoriename.
lpszCategoryNew
[in] Der neue Kategoriename.
Rückgabewert
TRUE, wenn die Methode erfolgreich war; andernfalls FALSE.
Hinweise
Der Kategoriename muss eindeutig sein.
CMFCToolBarsCustomizeDialog::ReplaceButton
Ersetzt eine Symbolleistenschaltfläche im Listenfeld von Befehlen auf der Befehlsseite .
void ReplaceButton(
UINT uiCmd,
const CMFCToolBarButton& button);
Parameter
uiCmd
[in] Gibt den Befehl der zu ersetzenden Schaltfläche an.
Schaltfläche
[in] Ein const
Verweis auf das Symbolleistenschaltflächenobjekt, das die alte Schaltfläche ersetzt.
Hinweise
Wenn CMFCToolBarsCustomizeDialog::AddMenu, CMFCToolBarsCustomizeDialog::AddMenuCommands, or CMFCToolBarsCustomizeDialog::AddToolBar add a command to the Commands page, that command is in form of a CMFCToolBarButton Class object (or a CMFCToolBarMenuButton Class object for a menu item that contains a submenu added by AddMenuCommands
). Das Framework ruft auch diese drei Methoden auf, um Befehle automatisch hinzuzufügen. Wenn stattdessen ein Befehl durch einen abgeleiteten Typ dargestellt werden soll, rufen Sie ReplaceButton
eine Schaltfläche des abgeleiteten Typs auf, und übergeben Sie ihn.
Beispiel
Im folgenden Beispiel wird die Verwendung der ReplaceButton
Methode in der CMFCToolBarsCustomizeDialog
Klasse veranschaulicht. Dieser Codeausschnitt ist Teil des Visual Studio Demo-Beispiels.
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCToolBarComboBoxButton comboButtonConfig
pDlgCust->ReplaceButton(ID_DUMMY_SELECT_ACTIVE_CONFIGURATION, comboButtonConfig);
CMFCToolBarsCustomizeDialog::SetUserCategory
Gibt an, welche Kategorie in der Liste der Kategorien auf der Befehlsseite die Benutzerkategorie ist. Sie müssen diese Funktion aufrufen, bevor Sie CMFCToolBarsCustomizeDialog::Create aufrufen.
BOOL SetUserCategory(LPCTSTR lpszCategory);
Parameter
lpszCategory
[in] Der Name der Kategorie.
Rückgabewert
TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.
Hinweise
Die Benutzerkategorieeinstellung wird derzeit nicht vom Framework verwendet.