CMFCToolBarsCustomizeDialog 类

使用户能够自定义应用程序中的工具栏、菜单、键盘快捷键、用户定义的工具和视觉样式的无模式选项卡对话框(CPropertySheet 类)。 通常,用户可从 “工具” 菜单中选择 “自定义” 来访问此对话框。

“自定义”对话框包含六个选项卡:命令、工具栏、工具、键盘、菜单和选项

语法

class CMFCToolBarsCustomizeDialog : public CPropertySheet

成员

公共构造函数

名称 描述
CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog 构造 CMFCToolBarsCustomizeDialog 对象。
CMFCToolBarsCustomizeDialog::~CMFCToolBarsCustomizeDialog 析构函数。

公共方法

名称 描述
CMFCToolBarsCustomizeDialog::AddButton 在“命令”页上的命令列表中插入工具栏按钮
CMFCToolBarsCustomizeDialog::AddMenu 从资源加载菜单,并调用 CMFCToolBarsCustomizeDialog::AddMenuCommands 将菜单添加到“命令”页上的命令列表中
CMFCToolBarsCustomizeDialog::AddMenuCommands 从资源加载菜单,并调用 CMFCToolBarsCustomizeDialog::AddMenuCommands 将菜单添加到“命令”页上的命令列表中
CMFCToolBarsCustomizeDialog::AddToolBar 从资源加载工具栏。 然后,对于菜单中的每个命令,调用 CMFCToolBarsCustomizeDialog::AddButton 方法,在指定类别下的“命令”页上的命令列表中插入一个按钮
CMFCToolBarsCustomizeDialog::Create 显示“自定义”对话框
CMFCToolBarsCustomizeDialog::EnableTools 保留供将来使用。
CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars 使用“自定义”对话框启用或禁用创建新工具栏
CMFCToolBarsCustomizeDialog::FillAllCommandsList 使用“所有命令”类别中的命令填充所提供的 CListBox 对象
CMFCToolBarsCustomizeDialog::FillCategoriesComboBox 使用“自定义”对话框中每个命令类别的名称填充所提供的 CComboBox 对象
CMFCToolBarsCustomizeDialog::FillCategoriesListBox 使用“自定义”对话框中每个命令类别的名称填充所提供的 CListBox 对象
CMFCToolBarsCustomizeDialog::GetCommandName 检索与给定命令 ID 关联的名称。
CMFCToolBarsCustomizeDialog::GetCountInCategory 检索在所提供的列表中具有给定文本标签的项数。
CMFCToolBarsCustomizeDialog::GetFlags 检索影响对话框行为的标志集。
CMFCToolBarsCustomizeDialog::GetThisClass 由框架用于获取指向与此类类型关联的 CRuntimeClass 对象的指针。
CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage 启动图像编辑器,以便用户可以自定义工具栏按钮或菜单项图标。
CMFCToolBarsCustomizeDialog::OnInitDialog 重写以增强属性表初始化。 (替代 CPropertySheet::OnInitDialog。)
CMFCToolBarsCustomizeDialog::PostNcDestroy 在窗口销毁后由框架调用。 (替代 CPropertySheet::PostNcDestroy。)
CMFCToolBarsCustomizeDialog::RemoveButton 从指定类别或从所有类别中删除具有指定命令 ID 的按钮。
CMFCToolBarsCustomizeDialog::RenameCategory 重命名“命令”选项卡上类别列表框中的类别
CMFCToolBarsCustomizeDialog::ReplaceButton 将“命令”选项卡上命令列表中的按钮替换为新的工具栏按钮对象
CMFCToolBarsCustomizeDialog::SetUserCategory 将一个类别添加到将在“命令”选项卡上显示的类别列表

受保护方法

名称 描述
CMFCToolBarsCustomizeDialog::CheckToolsValidity 由框架调用以确定用户定义的工具列表是否有效。
CMFCToolBarsCustomizeDialog::OnAfterChangeTool 当用户定义工具的属性发生更改时由框架调用。
CMFCToolBarsCustomizeDialog::OnAssignKey 确定是否可以将指定的键盘快捷方式分配给操作。
CMFCToolBarsCustomizeDialog::OnBeforeChangeTool 确定是否可以更改用户定义工具。
CMFCToolBarsCustomizeDialog::OnInitToolsPage 当用户选择请求“工具”选项卡时由框架调用

注解

若要显示“自定义”对话框,请创建一个 CMFCToolBarsCustomizeDialog 对象并调用 CMFCToolBarsCustomizeDialog::Create 方法

当“自定义”对话框处于活动状态时,应用程序以特殊模式工作,限制用户仅完成自定义任务

示例

下面的示例演示了如何使用 CMFCToolBarsCustomizeDialog 类中的各种方法。 该示例演示如何替换“命令”页上命令列表框中的工具栏按钮,如何使用“自定义”对话框启用创建新的工具栏,以及如何显示“自定义”对话框。 此代码片段是 IE 演示示例的一部分。

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

继承层次结构

CObject

CCmdTarget

CWnd

CPropertySheet

CMFCToolBarsCustomizeDialog

要求

标头:afxToolBarsCustomizeDialog.h

CMFCToolBarsCustomizeDialog::AddButton

在“命令”页上的命令列表中插入工具栏按钮

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

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

参数

uiCategoryId
[in] 指定要在其中插入按钮的类别 ID。

按钮
[in] 指定要插入的按钮。

iInsertBefore
[in] 指定在其前面插入按钮的工具栏按钮的从零开始的索引。

lpszCategory
[in] 指定要插入按钮的类别字符串。

备注

AddButton 方法忽略具有标准命令 ID(例如 ID_FILE_MRU_FILE1)的按钮、不允许的命令(请参阅 CMFCToolBar::IsCommandPermitted)和虚拟按钮。

此方法使用按钮的运行时类创建类型与 button 相同的新对象(通常是 CMFCToolBarButton Class)。 然后,它会调用 CMFCToolBarButton::CopyFrom 复制按钮的数据成员,并将副本插入指定类别。

插入新按钮时,它会收到 OnAddToCustomizePage 通知。

如果 iInsertBefore 为 -1,则按钮将追加到类别列表;否则将其插入具有指定索引的项之前。

示例

下面的示例演示如何使用 CMFCToolBarsCustomizeDialog 类的 AddButton 方法。 此代码片段是 Slider 示例的一部分。

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

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

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

CMFCToolBarsCustomizeDialog::AddMenu

从资源加载菜单,并调用 CMFCToolBarsCustomizeDialog::AddMenuCommands 将菜单添加到“命令”页上的命令列表中

BOOL AddMenu(UINT uiMenuResId);

参数

uiMenuResId
[in] 指定要加载的菜单的资源 ID。

返回值

如果成功添加了菜单,则为 TRUE;否则为 FALSE。

备注

在对 AddMenuCommands 的调用中,bPopup 为 FALSE。 因此,该方法不会向命令列表添加包含子菜单的菜单项。 此方法将子菜单中的菜单项添加到命令列表中。

CMFCToolBarsCustomizeDialog::AddMenuCommands

将项添加到“命令”页中的命令列表中,以表示指定菜单中的所有项

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

参数

pMenu
[in] 指向要添加的 CMenu 对象的指针。

bPopup
[in] 指定是否将弹出菜单项插入命令列表。

lpszCategory
[in] 要插入菜单的类别名称。

lpszMenuPath
[in] 在“所有类别”列表中显示命令时添加到名称的前缀

备注

AddMenuCommands 方法循环访问 pMenu 的所有菜单项。 对于每个不包含子菜单的菜单项,此方法会创建一个 CMFCToolBarButton Class 对象并调用 CMFCToolBarsCustomizeDialog::AddButton 方法将菜单项作为工具栏按钮添加到“命令”页面上的命令列表。 在此过程中会忽略分隔符。

如果 bPopup 为 TRUE,则此方法会为每个包含子菜单的菜单项创建一个 CMFCToolBarMenuButton Class 对象,并通过调用 AddButton 将其插入命令列表中。 否则,包含子菜单的菜单项不会显示在命令列表中。 无论哪种情况,当 AddMenuCommands 遇到带有子菜单的菜单项时,它会递归调用自身,将指向子菜单的指针作为 pMenu 参数传递,并将子菜单的标签附加到 lpszMenuPath

CMFCToolBarsCustomizeDialog::AddToolBar

从资源加载工具栏。 然后,对于菜单中的每个命令,调用 CMFCToolBarsCustomizeDialog::AddButton 方法,在指定类别下的“命令”页上的命令列表中插入一个按钮

BOOL AddToolBar(
    UINT uiCategoryId,
    UINT uiToolbarResId);

BOOL AddToolBar(
    LPCTSTR lpszCategory,
    UINT uiToolbarResId);

参数

uiCategoryId
[in] 指定要添加工具栏的类别的资源 ID。

uiToolbarResId
[in] 指定将其命令插入到命令列表的工具栏的资源 ID。

lpszCategory
[in] 指定要添加工具栏的类别的名称。

返回值

如果此方法成功,则为 TRUE;否则为 FALSE。

示例

以下示例演示了如何在 CMFCToolBarsCustomizeDialog 类中使用 AddToolBar 方法。 此代码片段属于 Word Pad 示例

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

注解

用于表示每个命令的控件是 CMFCToolBarButton Class 对象。 添加工具栏后,可以通过调用 CMFCToolBarsCustomizeDialog::ReplaceButton 将按钮替换为派生类型的控件。

CMFCToolBarsCustomizeDialog::CheckToolsValidity

验证用户工具列表的有效性。

virtual BOOL CheckToolsValidity(const CObList& lstTools);

参数

lstTools
[in] 要检查的用户定义工具的列表。

返回值

如果用户定义工具的列表有效,则返回 TRUE;否则返回 FALSE。 默认实现始终返回 TRUE。

注解

框架调用此方法来验证表示 CMFCToolBarsCustomizeDialog::CheckToolsValidity 返回的用户定义工具的对象的有效性。

如果要在用户关闭对话框之前验证用户工具,请在派生自 CMFCToolBarsCustomizeDialog 的类中重写 CheckToolsValidity 方法。 如果用户单击对话框右上角的“关闭”按钮或对话框右下角标记为“关闭”的按钮时,此方法返回 FALSE,则对话框将显示“工具”选项卡而不是“正在关闭”。 如果用户单击选项卡以导航离开“工具”选项卡时,此方法返回 FALSE,则不会发生导航。 应显示适当的消息框,告知用户导致验证失败的问题。

CMFCToolBarsCustomizeDialog::CMFCToolBarsCustomizeDialog

构造 CMFCToolBarsCustomizeDialog 对象。

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] 指向父框架的指针。 此参数不能为 NULL。

bAutoSetFromMenus
[in] 指定是否将所有菜单上的菜单命令添加到“命令”页上的命令列表的布尔值。 如果此参数为 TRUE,则添加菜单命令。 否则,不会添加菜单命令。

uiFlags
[in] 影响此对话框的行为的标志组合。 此参数可能是以下一个或多个值:

  • 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] 指向指定其他自定义页面的 CRuntimeClass 对象列表的指针。

备注

plistCustomPages 参数是指指定其他自定义页面的 CRuntimeClass 对象的列表。 构造函数使用 CRuntimeClass::CreateObject 方法向对话框添加更多页面。 有关向“自定义”对话框添加更多页面的示例,请参阅 CustomPages 示例

有关可以传入 uiFlags 参数的值的详细信息,请参阅 CMFCToolBarsCustomizeDialog::GetFlags

示例

以下示例演示如何构造 CMFCToolBarsCustomizeDialog 类的对象。 此代码片段属于自定义页面示例

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

显示“自定义”对话框

virtual BOOL Create();

返回值

如果已成功创建自定义属性表,则为 TRUE;否则为 FALSE。

备注

仅在完全初始化类后调用 Create 方法。

CMFCToolBarsCustomizeDialog::EnableUserDefinedToolbars

使用“自定义”对话框启用或禁用创建新工具栏

void EnableUserDefinedToolbars(BOOL bEnable=TRUE);

参数

bEnable
[in] 若要启用用户定义工具栏,则为 TRUE;若要禁用工具栏,则为 FALSE。

备注

如果 bEnable 为 TRUE,则“工具栏”页上会显示“新建”、“重命名”和“删除”按钮

默认情况下,或者如果 bEnable 为 FALSE,则不会显示这些按钮,并且用户无法定义新工具栏

CMFCToolBarsCustomizeDialog::FillAllCommandsList

使用“所有命令”类别中的命令填充所提供的 CListBox 对象

virtual void FillAllCommandsList(CListBox& wndListOfCommands) const;

参数

wndListOfCommands
[out] 对要填充的 CListBox 对象的引用。

备注

“所有命令”类别包含所有类别的命令CMFCToolBarsCustomizeDialog::AddButton 方法会将与提供的按钮关联的命令添加到“所有命令”类别中

此方法在使用“所有命令”类别中的命令填充提供的 CListBox 对象之前,会清除该对象的内容

CMFCMousePropertyPage 类使用此方法填充双击事件列表框。

CMFCToolBarsCustomizeDialog::FillCategoriesComboBox

使用“自定义”对话框中每个命令类别的名称填充所提供的 CComboBox 对象

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

参数

wndCategory
[out] 对要填充的 CComboBox 对象的引用。

bAddEmpty
[in] 指定是否向没有命令的组合框添加类别的布尔值。 如果此参数为 TRUE,则空类别将添加到组合框中。 否则,不会添加空类别。

备注

此方法类似于 CMFCToolBarsCustomizeDialog::FillCategoriesListBox 方法,只是此方法适用于 CComboBox 对象。

此方法在填充 CComboBox 对象之前不会清除该对象的内容。 它保证“所有命令”类别是组合框中的最后一项

可以使用 CMFCToolBarsCustomizeDialog::AddButton 方法添加新的命令类别。 可以使用 CMFCToolBarsCustomizeDialog::RenameCategory 方法更改现有类别的名称。

CMFCToolBarsKeyboardPropertyPageCMFCKeyMapDialog 类使用此方法对键盘映射进行分类。

CMFCToolBarsCustomizeDialog::FillCategoriesListBox

使用“自定义”对话框中每个命令类别的名称填充所提供的 CListBox 对象

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

参数

wndCategory
[out] 对要填充的 CListBox 对象的引用。

bAddEmpty
[in] 指定是否向没有命令的列表框添加类别的布尔值。 如果此参数为 TRUE,则空类别将添加到列表框中。 否则,不会添加空类别。

备注

此方法类似于 CMFCToolBarsCustomizeDialog::FillCategoriesComboBox 方法,只是此方法适用于 CListBox 对象。

此方法在填充 CListBox 对象之前不会清除该对象的内容。 它保证“所有命令”类别是列表框中的最后一项

可以使用 CMFCToolBarsCustomizeDialog::AddButton 方法添加新的命令类别。 可以使用 CMFCToolBarsCustomizeDialog::RenameCategory 方法更改现有类别的名称。

CMFCToolBarsCommandsPropertyPage 类使用此方法显示与每个命令类别关联的命令列表。

CMFCToolBarsCustomizeDialog::GetCommandName

检索与给定命令 ID 关联的名称。

LPCTSTR GetCommandName(UINT uiCmd) const;

参数

uiCmd
[in] 要检索的命令的 ID。

返回值

与给定命令 ID 关联的名称;或者如果命令不存在,则为 NULL。

CMFCToolBarsCustomizeDialog::GetCountInCategory

检索在所提供的列表中具有给定文本标签的项数。

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

参数

lpszItemName
[in] 要匹配的文本标签。

lstCommands
[in] 对包含 CMFCToolBarButton 对象的列表的引用。

返回值

所提供列表中文本标签等于 lpszItemName 的项的数量

注解

所提供的对象列表中的每个元素都必须为 CMFCToolBarButton 类型。 此方法将 lpszItemName 与 CMFCToolBarButton::m_strText 数据成员进行比较

CMFCToolBarsCustomizeDialog::GetFlags

检索影响对话框行为的标志集。

UINT GetFlags() const;

返回值

影响对话框行为的标志集。

备注

此方法检索传递给构造函数的 uiFlags 参数的值。 返回值可以为以下一个或多个值:

名称 描述
AFX_CUSTOMIZE_MENU_SHADOWS 允许用户指定菜单的阴影外观。
AFX_CUSTOMIZE_TEXT_LABELS 允许用户指定是否在工具栏按钮图像下显示文本标签。
AFX_CUSTOMIZE_MENU_ANIMATIONS 允许用户指定菜单动画样式。
AFX_CUSTOMIZE_NOHELP 从自定义对话框中移除帮助按钮。
AFX_CUSTOMIZE_CONTEXT_HELP 启用 WS_EX_CONTEXTHELP 视觉样式。
AFX_CUSTOMIZE_NOTOOLS 从自定义对话框中移除“工具”页面。 如果应用程序使用 CUserToolsManager 类,则此标志有效。
AFX_CUSTOMIZE_MENUAMPERS 允许按钮描述文字包含和 (&) 字符。
AFX_CUSTOMIZE_NO_LARGE_ICONS 从自定义对话框中移除“大图标”选项

有关 WS_EX_CONTEXTHELP 视觉样式的详细信息,请参阅扩展的窗口样式

CMFCToolBarsCustomizeDialog::OnAfterChangeTool

在用户工具发生更改后立即响应更改。

virtual void OnAfterChangeTool(CUserTool* pSelTool);

参数

pSelTool
[in, out] 指向已更改的用户工具对象的指针。

备注

当用户更改用户定义工具的属性时,框架将调用此方法。 默认实现不执行任何操作。 在派生自 CMFCToolBarsCustomizeDialog 的类中重写此方法,以在用户工具发生更改后执行处理。

CMFCToolBarsCustomizeDialog::OnAssignKey

在用户定义键盘快捷方式时进行验证。

virtual BOOL OnAssignKey(ACCEL* pAccel);

参数

pAccel
[in, out] 指向建议的以 ACCEL 结构表示的键盘分配的指针。

返回值

如果可以分配密钥,则为 TRUE;如果无法分配密钥,则为 FALSE。 默认实现始终返回 TRUE。

备注

在派生类中此方法,以在用户分配新的键盘快捷方式时执行额外处理,或在用户定义键盘快捷方式时进行验证。 若要防止分配快捷方式,请返回 FALSE。 还应显示一个消息框,否则应通知用户键盘快捷方式被拒绝的原因。

CMFCToolBarsCustomizeDialog::OnBeforeChangeTool

当用户即将应用更改时,对用户工具进行更改时,执行自定义处理。

virtual void OnBeforeChangeTool(CUserTool* pSelTool);

参数

pSelTool
[in, out] 指向即将替换的用户工具对象的指针。

备注

当用户定义工具的属性即将更改时,框架会调用此方法。 默认实现不执行任何操作。 如果要在用户工具发生更改(例如释放 pSelTool 使用的资源)之前执行处理,请在派生自 CMFCToolBarsCustomizeDialog 的类中重写 OnBeforeChangeTool 方法

CMFCToolBarsCustomizeDialog::OnEditToolbarMenuImage

启动图像编辑器,以便用户可以自定义工具栏按钮或菜单项图标。

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

参数

pWndParent
[in] 指向父窗口的指针。

位图
[in] 对要编辑的位图对象的引用。

nBitsPerPixel
[in] 位图颜色分辨率(以每像素位数为单位)。

返回值

如果正在提交更改,则为 TRUE;否则为 FALSE。 默认实现显示一个对话框,如果用户单击“确定”,则返回 TRUE;如果用户单击“取消”或“关闭”按钮,则返回 FALSE

注解

当用户运行图像编辑器时,框架会调用此方法。 默认实现显示 CMFCImageEditorDialog 类 对话框。 在派生类中重写 OnEditToolbarMenuImage 以使用自定义图像编辑器。

CMFCToolBarsCustomizeDialog::OnInitDialog

重写以增强属性表初始化。

virtual BOOL OnInitDialog();

返回值

调用 CPropertySheet::OnInitDialog 方法的结果。

备注

此方法通过显示“关闭”按钮、确保对话框适合当前屏幕尺寸以及将“帮助”按钮移动到对话框的左下角,来扩展基类实现 CPropertySheet::OnInitDialog

CMFCToolBarsCustomizeDialog::OnInitToolsPage

处理来自框架的通知:“工具”页即将初始化

virtual void OnInitToolsPage();

注解

默认实现不执行任何操作。 在派生类中重写此方法以处理此通知。

CMFCToolBarsCustomizeDialog::PostNcDestroy

在窗口销毁后由框架调用。

virtual void PostNcDestroy();

备注

此方法通过将应用程序还原到上一模式来扩展基类实现 CPropertySheet::PostNcDestroy

CMFCToolBarsCustomizeDialog::Create 方法将应用程序置于一种特殊模式,以限制用户只能完成自定义任务。

CMFCToolBarsCustomizeDialog::RemoveButton

从指定类别或从所有类别中删除具有指定命令 ID 的按钮。

int RemoveButton(
    UINT uiCategoryId,
    UINT uiCmdId);

int RemoveButton(
    LPCTSTR lpszCategory,
    UINT uiCmdId);

参数

uiCategoryId
[in] 指定要从中移除按钮的类别 ID。

uiCmdId
[in] 指定按钮的命令 ID。

lpszCategory
[in] 指定要从中移除按钮的类别的名称。

返回值

移除按钮的从零开始的索引;如果未在指定类别中找到指定的命令 ID,则为 -1。 如果 uiCategoryId 为 -1,则返回值为 0

备注

若要移除所有类别中的按钮,请调用此方法的第一个重载并将 uiCategoryId 设置为 -1

CMFCToolBarsCustomizeDialog::RenameCategory

重命名“命令”页上类别列表框中的类别

BOOL RenameCategory(
    LPCTSTR lpszCategoryOld,
    LPCTSTR lpszCategoryNew);

参数

lpszCategoryOld
[in] 要更改的类别名称。

lpszCategoryNew
[in] 新类别名称。

返回值

如果此方法成功,则为 TRUE;否则为 FALSE。

注解

类别名称必须唯一。

CMFCToolBarsCustomizeDialog::ReplaceButton

在“命令”页上的命令列表框中替换工具栏按钮

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

参数

uiCmd
[in] 指定要替换的按钮的命令。

按钮
[in] 对替换旧按钮的工具栏按钮对象的 const 引用。

备注

CMFCToolBarsCustomizeDialog::AddMenuCMFCToolBarsCustomizeDialog::AddMenuCommandsCMFCToolBarsCustomizeDialog::AddToolBar 将命令添加到“命令”页面时,该命令采用 CMFCToolBarButton Class 对象(或包含由 AddMenuCommands 添加的子菜单的菜单项的 CMFCToolBarMenuButton Class 对象)的形式。 框架还调用这三种方法来自动添加命令。 如果希望命令改由派生类型表示,请调用 ReplaceButton 并传入派生类型的按钮。

示例

以下示例演示了如何在 CMFCToolBarsCustomizeDialog 类中使用 ReplaceButton 方法。 此代码片段是 Visual Studio 演示示例的一部分。

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

CMFCToolBarsCustomizeDialog::SetUserCategory

指定“命令”页上类别列表中的哪个类别是用户类别。 在调用 CMFCToolBarsCustomizeDialog::Create 之前,必须调用此函数。

BOOL SetUserCategory(LPCTSTR lpszCategory);

参数

lpszCategory
[in] 类别的名称。

返回值

如果此方法成功,则为 TRUE;否则为 FALSE。

备注

框架当前不使用用户类别设置。

另请参阅

层次结构图

CPropertySheet 类