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.
class CMFCToolBarsCustomizeDialog : public CPropertySheet
Name | Beschreibung |
---|---|
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog | Erstellt ein CMFCToolBarsCustomizeDialog -Objekt. |
CMFCToolBarsCustomizeDialog::~CMFCToolBarsCustomizeDialog |
Destruktor. |
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. |
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. |
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.
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();
CMFCToolBarsCustomizeDialog
Header: afxToolBarsCustomizeDialog.h
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);
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.
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.
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);
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);
uiMenuResId
[in] Gibt die Ressourcen-ID eines zu ladenden Menüs an.
TRUE, wenn ein Menü erfolgreich hinzugefügt wurde; andernfalls FALSE.
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.
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);
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.
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.
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);
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.
TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.
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);
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.
Überprüft die Gültigkeit der Liste der Benutzertools.
virtual BOOL CheckToolsValidity(const CObList& lstTools);
lstTools
[in] Die Liste der zu überprüfenden benutzerdefinierten Tools.
Gibt TRUE zurück, wenn die Liste der benutzerdefinierten Tools gültig ist; andernfalls FALSE. Die Standardimplementierung gibt immer TRUE zurück.
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.
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);
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.
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.
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
Zeigt das Dialogfeld "Anpassung" an.
virtual BOOL Create();
TRUE, wenn das Eigenschaftenblatt zum Anpassen erfolgreich erstellt wird; andernfalls FALSE.
Rufen Sie die Create
Methode erst auf, nachdem Sie die Klasse vollständig initialisiert haben.
Aktiviert oder deaktiviert das Erstellen neuer Symbolleisten mithilfe des Dialogfelds "Anpassen ".
void EnableUserDefinedToolbars(BOOL bEnable=TRUE);
bEnable
[in] TRUE, um die benutzerdefinierten Symbolleisten zu aktivieren; FALSE, um die Symbolleisten zu deaktivieren.
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.
Füllt das bereitgestellte CListBox
Objekt mit den Befehlen in der Kategorie "Alle Befehle" auf.
virtual void FillAllCommandsList(CListBox& wndListOfCommands) const;
wndListOfCommands
[out] Ein Verweis auf das CListBox
zu füllende Objekt.
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.
Füllt das bereitgestellte CComboBox
Objekt mit dem Namen jeder Befehlskategorie im Dialogfeld "Anpassen " auf.
void FillCategoriesComboBox(
CComboBox& wndCategory,
BOOL bAddEmpty = TRUE) const;
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.
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.
Füllt das bereitgestellte CListBox
Objekt mit dem Namen jeder Befehlskategorie im Dialogfeld "Anpassen " auf.
void FillCategoriesListBox(
CListBox& wndCategory,
BOOL bAddEmpty = TRUE) const;
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.
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.
Ruft den Namen ab, der der angegebenen Befehls-ID zugeordnet ist.
LPCTSTR GetCommandName(UINT uiCmd) const;
uiCmd
[in] Die ID des abzurufenden Befehls.
Der Name, der der angegebenen Befehls-ID zugeordnet ist, oder NULL, wenn der Befehl nicht vorhanden ist.
Ruft die Anzahl der Elemente in der bereitgestellten Liste ab, die eine bestimmte Textbezeichnung aufweisen.
int GetCountInCategory(
LPCTSTR lpszItemName,
const CObList& lstCommands) const;
lpszItemName
[in] Die zuzuordnende Textbezeichnung.
lstCommands
[in] Ein Verweis auf eine Liste, die Objekte enthält CMFCToolBarButton
.
Die Anzahl der Elemente in der bereitgestellten Liste, deren Textbezeichnung lpszItemName entspricht.
Jedes Element in der bereitgestellten Objektliste muss vom Typ CMFCToolBarButton
sein. Diese Methode vergleicht lpszItemName mit dem CMFCToolBarButton::m_strText-Datenmemm .
Ruft den Satz von Flags ab, die sich auf das Verhalten des Dialogfelds auswirken.
UINT GetFlags() const;
Der Satz von Flags, die sich auf das Verhalten des Dialogfelds auswirken.
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".
Reagiert sofort nach dem Auftreten auf eine Änderung in einem Benutzertool.
virtual void OnAfterChangeTool(CUserTool* pSelTool);
pSelTool
[in, out] Ein Zeiger auf das Benutzertoolobjekt, das geändert wurde.
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.
Überprüft Tastenkombinationen, wenn ein Benutzer sie definiert.
virtual BOOL OnAssignKey(ACCEL* pAccel);
pAccel
[in, out] Zeigen Sie auf die vorgeschlagene Tastaturzuweisung, die als ACCEL-Struktur ausgedrückt wird.
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.
Ü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.
Führt benutzerdefinierte Verarbeitung durch, wenn eine Änderung an einem Benutzertool erfolgt, wenn der Benutzer eine Änderung anwendet.
virtual void OnBeforeChangeTool(CUserTool* pSelTool);
pSelTool
[in, out] Ein Zeiger auf das Benutzertoolobjekt, das ersetzt werden soll.
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.
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);
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.
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.
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.
Außerkraftsetzungen zum Erweitern der Initialisierung des Eigenschaftenblatts.
virtual BOOL OnInitDialog();
Das Ergebnis des Aufrufs der CPropertySheet::OnInitDialog-Methode .
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.
Behandelt die Benachrichtigung aus dem Framework, dass die Seite "Tools " gerade initialisiert werden soll.
virtual void OnInitToolsPage();
Bei der Standardimplementierung wird keine Aktion ausgeführt. Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um diese Benachrichtigung zu verarbeiten.
Vom Framework aufgerufen, nachdem das Fenster zerstört wurde.
virtual void PostNcDestroy();
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.
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);
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.
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.
Um eine Schaltfläche aus allen Kategorien zu entfernen, rufen Sie die erste Überladung dieser Methode auf, und legen Sie uiCategoryId auf -1 fest.
Benennt eine Kategorie im Listenfeld der Kategorien auf der Befehlsseite um.
BOOL RenameCategory(
LPCTSTR lpszCategoryOld,
LPCTSTR lpszCategoryNew);
lpszCategoryOld
[in] Der zu ändernde Kategoriename.
lpszCategoryNew
[in] Der neue Kategoriename.
TRUE, wenn die Methode erfolgreich war; andernfalls FALSE.
Der Kategoriename muss eindeutig sein.
Ersetzt eine Symbolleistenschaltfläche im Listenfeld von Befehlen auf der Befehlsseite .
void ReplaceButton(
UINT uiCmd,
const CMFCToolBarButton& button);
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.
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.
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);
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);
lpszCategory
[in] Der Name der Kategorie.
TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.
Die Benutzerkategorieeinstellung wird derzeit nicht vom Framework verwendet.