Freigeben über


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

CObject

CCmdTarget

CWnd

CPropertySheet

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 AddButtonin 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 CMFCToolBarButtonsein. 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 schaltflächen Untertitel s 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::PostNcDestroyindem 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.

Siehe auch

Hierarchiediagramm
Klassen
CPropertySheet-Klasse