CMFCToolBarsCustomizeDialog Class

A modeless tab dialog box ( CPropertySheet Class) that enables the user to customize the toolbars, menus, keyboard shortcuts, user-defined tools, and visual style in an application. Typically, the user accesses this dialog box by selecting Customize from the Tools menu.

The Customize dialog box has six tabs: Commands, Toolbars, Tools, Keyboard, Menu, and Options.

Syntax

class CMFCToolBarsCustomizeDialog : public CPropertySheet

Members

Public Constructors

Name Description
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog Constructs a CMFCToolBarsCustomizeDialog object.
CMFCToolBarsCustomizeDialog::~CMFCToolBarsCustomizeDialog Destructor.

Public Methods

Name Description
CMFCToolBarsCustomizeDialog::AddButton Inserts a toolbar button into the list of commands on the Commands page
CMFCToolBarsCustomizeDialog::AddMenu Loads a menu from the resources and calls CMFCToolBarsCustomizeDialog::AddMenuCommands to add that menu to the list of commands on the Commands page.
CMFCToolBarsCustomizeDialog::AddMenuCommands Loads a menu from the resources and calls CMFCToolBarsCustomizeDialog::AddMenuCommands to add that menu to the list of commands on the Commands page.
CMFCToolBarsCustomizeDialog::AddToolBar Loads a toolbar from the resources. Then, for each command in the menu calls the CMFCToolBarsCustomizeDialog::AddButton method to insert a button in the list of commands on the Commands page under the specified category.
CMFCToolBarsCustomizeDialog::Create Displays the Customization dialog box.
CMFCToolBarsCustomizeDialog::EnableTools Reserved for future use.
CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars Enables or disables creating new toolbars by using the Customize dialog box.
CMFCToolBarsCustomizeDialog::FillAllCommandsList Populates the provided CListBox object with the commands in the All Commands category.
CMFCToolBarsCustomizeDialog::FillCategoriesComboBox Populates the provided CComboBox object with the name of each command category in the Customize dialog box.
CMFCToolBarsCustomizeDialog::FillCategoriesListBox Populates the provided CListBox object with the name of each command category in the Customize dialog box.
CMFCToolBarsCustomizeDialog::GetCommandName Retrieves the name that is associated with the given command ID.
CMFCToolBarsCustomizeDialog::GetCountInCategory Retrieves the number of items in the provided list that have a given text label.
CMFCToolBarsCustomizeDialog::GetFlags Retrieves the set of flags that affect the behavior of the dialog box.
CMFCToolBarsCustomizeDialog::GetThisClass Used by the framework to obtain a pointer to the CRuntimeClass object that is associated with this class type.
CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage Starts an image editor so that a user can customize a toolbar button or menu item icon.
CMFCToolBarsCustomizeDialog::OnInitDialog Overrides to augment property sheet initialization. (Overrides CPropertySheet::OnInitDialog.)
CMFCToolBarsCustomizeDialog::PostNcDestroy Called by the framework after the window has been destroyed. (Overrides CPropertySheet::PostNcDestroy.)
CMFCToolBarsCustomizeDialog::RemoveButton Removes the button with the specified command ID from the specified category, or from all categories.
CMFCToolBarsCustomizeDialog::RenameCategory Renames a category in the list box of categories on the Commands tab.
CMFCToolBarsCustomizeDialog::ReplaceButton Replaces a button in the list of commands on the Commands tab with a new toolbar button object.
CMFCToolBarsCustomizeDialog::SetUserCategory Adds a category to the list of categories that will be displayed on the Commands tab.

Protected Methods

Name Description
CMFCToolBarsCustomizeDialog::CheckToolsValidity Called by the framework to determine whether the list of user-defined tools is valid.
CMFCToolBarsCustomizeDialog::OnAfterChangeTool Called by the framework when the properties of a user-defined tool change.
CMFCToolBarsCustomizeDialog::OnAssignKey Determines whether a specified keyboard shortcut can be assigned to an action.
CMFCToolBarsCustomizeDialog::OnBeforeChangeTool Determines whether a user-defined tool can be changed.
CMFCToolBarsCustomizeDialog::OnInitToolsPage Called by the framework when the user chooses the Tools tab is requested.

Remarks

To display the Customize dialog box, create a CMFCToolBarsCustomizeDialog object and call the CMFCToolBarsCustomizeDialog::Create method.

While the Customize dialog box is active, the application works in a special mode that limits the user to customization tasks.

Example

The following example demonstrates how to use various methods in the CMFCToolBarsCustomizeDialog class. The example shows how to replace a toolbar button in the list box of commands on the Commands page, enable creating new toolbars by using the Customize dialog box, and display the Customization dialog box. This code snippet is part of the IE Demo sample.

pDlgCust->ReplaceButton(ID_FAVORITS_DUMMY,
                        CMFCToolBarMenuButton((UINT)-1, menuFavorites, -1, strFavorites));
pDlgCust->EnableUserDefinedToolbars();
pDlgCust->Create();

Inheritance Hierarchy

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCToolBarsCustomizeDialog

Requirements

Header: afxToolBarsCustomizeDialog.h

CMFCToolBarsCustomizeDialog::AddButton

Inserts a toolbar button into the list of commands on the Commands page.

void AddButton(
    UINT uiCategoryId,
    const CMFCToolBarButton& button,
    int iInsertBefore=-1);

void AddButton(
    LPCTSTR lpszCategory,
    const CMFCToolBarButton& button,
    int iInsertBefore=-1);

Parameters

uiCategoryId
[in] Specifies the category ID into which to insert the button.

button
[in] Specifies the button to insert.

iInsertBefore
[in] Specifies the zero-based index of a toolbar button before which the button is inserted.

lpszCategory
[in] Specifies the category string to insert the button.

Remarks

The AddButton method ignores buttons that have the standard command IDs (such as ID_FILE_MRU_FILE1), commands that are not permitted (see CMFCToolBar::IsCommandPermitted) and dummy buttons.

This method creates a new object of the same type as button (usually a CMFCToolBarButton Class) by using the runtime class of the button. It then calls CMFCToolBarButton::CopyFrom to copy the data members of button, and inserts the copy into the specified category.

When the new button is inserted, it receives the OnAddToCustomizePage notification.

If iInsertBefore is -1, the button is appended to the list of categories; otherwise it is inserted before the item with the specified index.

Example

The following example demonstrates how to use the AddButton method of the CMFCToolBarsCustomizeDialog class. This code snippet is part of the Slider sample.

CMFCToolBarsCustomizeDialog *pDlgCust = new CMFCToolBarsCustomizeDialog(this,
                                                                        TRUE /* Automatic menus scaning */);

CSliderButton btnSlider(ID_SLIDER);
btnSlider.SetRange(0, 100);

pDlgCust->AddButton(_T("Edit"), btnSlider);

CMFCToolBarsCustomizeDialog::AddMenu

Loads a menu from the resources and calls CMFCToolBarsCustomizeDialog::AddMenuCommands to add that menu to the list of commands on the Commands page.

BOOL AddMenu(UINT uiMenuResId);

Parameters

uiMenuResId
[in] Specifies the resource ID of a menu to load.

Return Value

TRUE if a menu was added successfully; otherwise FALSE.

Remarks

In the call to AddMenuCommands, bPopup is FALSE. As a result, that method does not add menu items that contain submenus to the list of commands. This method does add the menu items in the submenus to the list of commands.

CMFCToolBarsCustomizeDialog::AddMenuCommands

Adds items to the list of commands in the Commands page to represent all the items in the specified menu.

void AddMenuCommands(
    const CMenu* pMenu,
    BOOL bPopup,
    LPCTSTR lpszCategory=NULL,
    LPCTSTR lpszMenuPath=NULL);

Parameters

pMenu
[in] A pointer to the CMenu object to add.

bPopup
[in] Specifies whether to insert the popup menu items to the list of commands.

lpszCategory
[in] The name of the category to insert the menu.

lpszMenuPath
[in] A prefix that is added to the name when the command is shown in the All Categories list.

Remarks

The AddMenuCommands method loops over all menu items of pMenu. For each menu item that does not contain a submenu, this method creates a CMFCToolBarButton Class object and calls the CMFCToolBarsCustomizeDialog::AddButton method to add the menu item as a toolbar button to the list of commands on the Commands page. Separators are ignored in this process.

If bPopup is TRUE, for each menu item that contains a submenu this method creates a CMFCToolBarMenuButton Class object and inserts it into the list of commands by calling AddButton. Otherwise menu items that contain submenus are not displayed in the list of commands. In either case, when AddMenuCommands encounters a menu item with a submenu it calls itself recursively, passing a pointer to the submenu as the pMenu parameter and appending the label of the submenu to lpszMenuPath.

CMFCToolBarsCustomizeDialog::AddToolBar

Loads a toolbar from the resources. Then, for each command in the menu calls the CMFCToolBarsCustomizeDialog::AddButton method to insert a button in the list of commands on the Commands page under the specified category.

BOOL AddToolBar(
    UINT uiCategoryId,
    UINT uiToolbarResId);

BOOL AddToolBar(
    LPCTSTR lpszCategory,
    UINT uiToolbarResId);

Parameters

uiCategoryId
[in] Specifies the resource ID of the category to add the toolbar to.

uiToolbarResId
[in] Specifies the resource ID of a toolbar whose commands are inserted into the list of commands.

lpszCategory
[in] Specifies the name of the category to which to add the toolbar.

Return Value

TRUE if the method is successful; otherwise FALSE.

Example

The following example demonstrates how to use the AddToolBar method in the CMFCToolBarsCustomizeDialog class. This code snippet is part of the Word Pad sample.

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);

Remarks

The control that is used to represent each command is a CMFCToolBarButton Class object. After you add the toolbar, you can replace the button with a control of a derived type by calling CMFCToolBarsCustomizeDialog::ReplaceButton.

CMFCToolBarsCustomizeDialog::CheckToolsValidity

Verifies the validity of the list of user tools.

virtual BOOL CheckToolsValidity(const CObList& lstTools);

Parameters

lstTools
[in] The list of user-defined tools to check.

Return Value

Returns TRUE if the list of user-defined tools is valid; otherwise FALSE. The default implementation always returns TRUE.

Remarks

The framework calls this method to verify the validity of objects that represent user-defined tools returned by CMFCToolBarsCustomizeDialog::CheckToolsValidity.

Override the CheckToolsValidity method in a class derived from CMFCToolBarsCustomizeDialog if you want to validate the user tools before the user closes the dialog box. If this method returns FALSE when the user clicks either the Close button in the upper-right corner of the dialog box or the button labeled Close in the lower-right corner of the dialog box, the dialog box displays the Tools tab instead of closing. If this method returns FALSE when the user clicks a tab to navigate away from the Tools tab, the navigation does not occur. You should display an appropriate message box to inform the user of the problem that caused validation to fail.

CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog

Constructs a CMFCToolBarsCustomizeDialog object.

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);

Parameters

pWndParentFrame
[in] A pointer to the parent frame. This parameter must not be NULL.

bAutoSetFromMenus
[in] A Boolean value that specifies whether to add the menu commands from all menus to the list of commands on the Commands page. If this parameter is TRUE, the menu commands are added. Otherwise, the menu commands are not added.

uiFlags
[in] A combination of flags that affect the behavior of the dialog box. This parameter can be one or more of the following values:

  • 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] A pointer to a list of CRuntimeClass objects that specify additional custom pages.

Remarks

The plistCustomPages parameter refers to the list of CRuntimeClass objects that specify additional custom pages. The constructor adds more pages to the dialog box by using the CRuntimeClass::CreateObject method. See the CustomPages sample for an example that adds more pages to the Customize dialog box.

For more information about the values that you can pass in the uiFlags parameter, see CMFCToolBarsCustomizeDialog::GetFlags.

Example

The following example demonstrates how to construct an object of the CMFCToolBarsCustomizeDialog class. This code snippet is part of the Custom Pages sample.

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

Displays the Customization dialog box.

virtual BOOL Create();

Return Value

TRUE if the customization property sheet is created successfully; otherwise FALSE.

Remarks

Call the Create method only after you fully initialize the class.

CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars

Enables or disables creating new toolbars by using the Customize dialog box.

void EnableUserDefinedToolbars(BOOL bEnable=TRUE);

Parameters

bEnable
[in] TRUE to enable the user-defined toolbars; FALSE to disable the toolbars.

Remarks

If bEnable is TRUE, the New, Rename and Delete buttons are displayed on the Toolbars page.

By default, or if bEnable is FALSE, these buttons are not displayed and the user cannot define new toolbars.

CMFCToolBarsCustomizeDialog::FillAllCommandsList

Populates the provided CListBox object with the commands in the All Commands category.

virtual void FillAllCommandsList(CListBox& wndListOfCommands) const;

Parameters

wndListOfCommands
[out] A reference to the CListBox object to populate.

Remarks

The All Commands category contains the commands of all categories. The CMFCToolBarsCustomizeDialog::AddButton method adds the command that is associated with the provided button to the All Commands category for you.

This method clears the contents of the provided CListBox object before populating it with the commands in the All Commands category.

The CMFCMousePropertyPage class uses this method to populate the double-click event list box.

CMFCToolBarsCustomizeDialog::FillCategoriesComboBox

Populates the provided CComboBox object with the name of each command category in the Customize dialog box.

void FillCategoriesComboBox(
    CComboBox& wndCategory,
    BOOL bAddEmpty = TRUE) const;

Parameters

wndCategory
[out] A reference to the CComboBox object to populate.

bAddEmpty
[in] A Boolean value that specifies whether to add categories to the combo box that do not have commands. If this parameter is TRUE, empty categories are added to the combo box. Otherwise, empty categories are not added.

Remarks

This method is like the CMFCToolBarsCustomizeDialog::FillCategoriesListBox method except that this method works with a CComboBox object.

This method does not clear the contents of the CComboBox object before populating it. It guarantees that the All Commands category is the final item in the combo box.

You can add new command categories by using the CMFCToolBarsCustomizeDialog::AddButton method. You can change the name of an existing category by using the CMFCToolBarsCustomizeDialog::RenameCategory method.

The CMFCToolBarsKeyboardPropertyPage and CMFCKeyMapDialog classes use this method to categorize keyboard mappings.

CMFCToolBarsCustomizeDialog::FillCategoriesListBox

Populates the provided CListBox object with the name of each command category in the Customize dialog box.

void FillCategoriesListBox(
    CListBox& wndCategory,
    BOOL bAddEmpty = TRUE) const;

Parameters

wndCategory
[out] A reference to the CListBox object to populate.

bAddEmpty
[in] A Boolean value that specifies whether to add categories to the list box that do not have commands. If this parameter is TRUE, empty categories are added to the list box. Otherwise, empty categories are not added.

Remarks

This method is like the CMFCToolBarsCustomizeDialog::FillCategoriesComboBox method except that this method works with a CListBox object.

This method does not clear the contents of the CListBox object before populating it. It guarantees that the All Commands category is the final item in the list box.

You can add new command categories by using the CMFCToolBarsCustomizeDialog::AddButton method. You can change the name of an existing category by using the CMFCToolBarsCustomizeDialog::RenameCategory method.

The CMFCToolBarsCommandsPropertyPage class uses this method to show the list of commands that is associated with each command category.

CMFCToolBarsCustomizeDialog::GetCommandName

Retrieves the name that is associated with the given command ID.

LPCTSTR GetCommandName(UINT uiCmd) const;

Parameters

uiCmd
[in] The ID of the command to retrieve.

Return Value

The name that is associated with the given command ID, or NULL if the command does not exist.

CMFCToolBarsCustomizeDialog::GetCountInCategory

Retrieves the number of items in the provided list that have a given text label.

int GetCountInCategory(
    LPCTSTR lpszItemName,
    const CObList& lstCommands) const;

Parameters

lpszItemName
[in] The text label to match.

lstCommands
[in] A reference to a list that contains CMFCToolBarButton objects.

Return Value

The number of items in the provided list whose text label equals lpszItemName.

Remarks

Each element in the provided object list must be of type CMFCToolBarButton. This method compares lpszItemName with the CMFCToolBarButton::m_strText data member.

CMFCToolBarsCustomizeDialog::GetFlags

Retrieves the set of flags that affect the behavior of the dialog box.

UINT GetFlags() const;

Return Value

The set of flags that affect the behavior of the dialog box.

Remarks

This method retrieves the value of the uiFlags parameter that is passed to the constructor. The return value can be one or more of the following values:

Name Description
AFX_CUSTOMIZE_MENU_SHADOWS Allows the user to specify the shadow appearance of the menu.
AFX_CUSTOMIZE_TEXT_LABELS Allows the user to specify whether text labels are shown underneath the toolbar button images.
AFX_CUSTOMIZE_MENU_ANIMATIONS Allows the user to specify the menu animation style.
AFX_CUSTOMIZE_NOHELP Removes the help button from the customization dialog box.
AFX_CUSTOMIZE_CONTEXT_HELP Enables the WS_EX_CONTEXTHELP visual style.
AFX_CUSTOMIZE_NOTOOLS Removes the Tools page from the customization dialog box. This flag is valid if your application uses the CUserToolsManager class.
AFX_CUSTOMIZE_MENUAMPERS Allows button captions to contain the ampersand ( &) character.
AFX_CUSTOMIZE_NO_LARGE_ICONS Removes the Large Icons option from the customization dialog box.

For more information about the WS_EX_CONTEXTHELP visual style, see Extended Window Styles.

CMFCToolBarsCustomizeDialog::OnAfterChangeTool

Responds to a change in a user tool immediately after it occurs.

virtual void OnAfterChangeTool(CUserTool* pSelTool);

Parameters

pSelTool
[in, out] A pointer to the user tool object that has been changed.

Remarks

This method is called by the framework when a user changes the properties of a user-defined tool. The default implementation does nothing. Override this method in a class derived from CMFCToolBarsCustomizeDialog to perform processing after a change to a user tool occurs.

CMFCToolBarsCustomizeDialog::OnAssignKey

Validates keyboard shortcuts as a user defines them.

virtual BOOL OnAssignKey(ACCEL* pAccel);

Parameters

pAccel
[in, out] Pointer to the proposed keyboard assignment that is expressed as an ACCEL struct.

Return Value

TRUE if the key can be assigned, or FALSE if the key cannot be assigned. The default implementation always returns TRUE.

Remarks

Override this method in a derived class to perform extra processing when a user assigns a new keyboard shortcut, or to validate keyboard shortcuts as the user defines them. To prevent a shortcut from being assigned, return FALSE. You should also display a message box or otherwise inform the user of the reason why the keyboard shortcut was rejected.

CMFCToolBarsCustomizeDialog::OnBeforeChangeTool

Performs custom processing when a change to a user tool when the user is about to apply a change.

virtual void OnBeforeChangeTool(CUserTool* pSelTool);

Parameters

pSelTool
[in, out] A pointer to the user tool object that is about to be replaced.

Remarks

This method is called by the framework when the properties of a user-defined tool is about to change. The default implementation does nothing. Override the OnBeforeChangeTool method in a class derived from CMFCToolBarsCustomizeDialog if you want to perform processing before a change to a user tool occurs, such as releasing resources that pSelTool uses.

CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage

Starts an image editor so that a user can customize a toolbar button or menu item icon.

virtual BOOL OnEditToolbarMenuImage(
    CWnd* pWndParent,
    CBitmap& bitmap,
    int nBitsPerPixel);

Parameters

pWndParent
[in] A pointer to the parent window.

bitmap
[in] A reference to a bitmap object to be edited.

nBitsPerPixel
[in] Bitmap color resolution, in bits per pixel.

Return Value

TRUE if a change is being committed; otherwise FALSE. The default implementation displays a dialog box and returns TRUE if the user clicks OK, or FALSE if the user clicks Cancel or the Close button.

Remarks

This method is called by the framework when the user runs the image editor. The default implementation displays CMFCImageEditorDialog Class dialog box. Override OnEditToolbarMenuImage in a derived class to use a custom image editor.

CMFCToolBarsCustomizeDialog::OnInitDialog

Overrides to augment property sheet initialization.

virtual BOOL OnInitDialog();

Return Value

The result of calling the CPropertySheet::OnInitDialog method.

Remarks

This method extends the base class implementation, CPropertySheet::OnInitDialog, by displaying the Close button, by making sure that the dialog box fits the current screen size, and by moving the Help button to the lower-left corner of the dialog box.

CMFCToolBarsCustomizeDialog::OnInitToolsPage

Handles the notification from the framework that the Tools page is about to be initialized.

virtual void OnInitToolsPage();

Remarks

The default implementation does nothing. Override this method in a derived class to process this notification.

CMFCToolBarsCustomizeDialog::PostNcDestroy

Called by the framework after the window has been destroyed.

virtual void PostNcDestroy();

Remarks

This method extends the base class implementation, CPropertySheet::PostNcDestroy, by restoring the application to the previous mode.

The CMFCToolBarsCustomizeDialog::Create method puts the application in a special mode that limits the user to customization tasks.

CMFCToolBarsCustomizeDialog::RemoveButton

Removes the button with the specified command ID from the specified category, or from all categories.

int RemoveButton(
    UINT uiCategoryId,
    UINT uiCmdId);

int RemoveButton(
    LPCTSTR lpszCategory,
    UINT uiCmdId);

Parameters

uiCategoryId
[in] Specifies the category ID from which to remove the button.

uiCmdId
[in] Specifies the command ID of the button.

lpszCategory
[in] Specifies the name of the category from which to remove the button.

Return Value

The zero-based index of the removed button, or -1 if the specified command ID was not found in the specified category. If uiCategoryId is -1, the return value is 0.

Remarks

To remove a button from all categories, call the first overload of this method and set uiCategoryId to -1.

CMFCToolBarsCustomizeDialog::RenameCategory

Renames a category in the list box of categories on the Commands page.

BOOL RenameCategory(
    LPCTSTR lpszCategoryOld,
    LPCTSTR lpszCategoryNew);

Parameters

lpszCategoryOld
[in] The category name to change.

lpszCategoryNew
[in] The new category name.

Return Value

TRUE if the method was successful; otherwise FALSE.

Remarks

The category name must be unique.

CMFCToolBarsCustomizeDialog::ReplaceButton

Replaces a toolbar button in the list box of commands on the Commands page.

void ReplaceButton(
    UINT uiCmd,
    const CMFCToolBarButton& button);

Parameters

uiCmd
[in] Specifies the command of the button to be replaced.

button
[in] A const reference to the toolbar button object that replaces the old button.

Remarks

When CMFCToolBarsCustomizeDialog::AddMenu, CMFCToolBarsCustomizeDialog::AddMenuCommands, or CMFCToolBarsCustomizeDialog::AddToolBar adds a command to the Commands page, that command is in the form of a CMFCToolBarButton Class object (or a CMFCToolBarMenuButton Class object for a menu item that contains a submenu added by AddMenuCommands). The framework also calls these three methods to add commands automatically. If you want a command to be represented by a derived type instead, call ReplaceButton and pass in a button of the derived type.

Example

The following example demonstrates how to use the ReplaceButton method in the CMFCToolBarsCustomizeDialog class. This code snippet is part of the Visual Studio Demo sample.

// CMFCToolBarsCustomizeDialog* pDlgCust
     // CMFCToolBarComboBoxButton comboButtonConfig
     pDlgCust->ReplaceButton(ID_DUMMY_SELECT_ACTIVE_CONFIGURATION, comboButtonConfig);

CMFCToolBarsCustomizeDialog::SetUserCategory

Specifies which category in the list of categories on the Commands page is the user category. You must call this function before you call CMFCToolBarsCustomizeDialog::Create.

BOOL SetUserCategory(LPCTSTR lpszCategory);

Parameters

lpszCategory
[in] The name of the category.

Return Value

TRUE if the method is successful; otherwise FALSE.

Remarks

The user category setting is not currently used by the framework.

See also

Hierarchy Chart
Classes
CPropertySheet Class