Share via


CMFCRibbonBar

CMFCRibbonBar 类实现与 Office 2007 中所使用的类似功能区栏。

有关更多详细信息,请参阅 Visual Studio 安装的 mfc 文件夹中的源代码。 例如 %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc

语法

class CMFCRibbonBar : public CPane

成员

公共构造函数

名称 描述
CMFCRibbonBar::CMFCRibbonBar 默认构造函数。

公共方法

名称 描述
CMFCRibbonBar::ActivateContextCategory 激活已经可见的上下文类别。
CMFCRibbonBar::AddCategory 向功能区添加新的功能区类别。
CMFCRibbonBar::AddContextCategory 添加上下文类别。
CMFCRibbonBar::AddMainCategory 添加新的主功能区类别。
CMFCRibbonBar::AddPrintPreviewCategory
CMFCRibbonBar::AddQATOnlyCategory
CMFCRibbonBar::AddToTabs 将功能区元素添加到功能区栏的右侧。
CMFCRibbonBar::CreateEx 创建控件条并将其附加到 CPane 对象。 (替代 CPane::CreateEx。)
CMFCRibbonBar::Create 创建功能区栏控件并将其附加到功能区栏。
CMFCRibbonBar::DeactivateKeyboardFocus
CMFCRibbonBar::DrawMenuImage
CMFCRibbonBar::DWMCompositionChanged
CMFCRibbonBar::EnableKeyTips 启用或禁用功能区控件的键提示。
CMFCRibbonBar::EnablePrintPreview 启用“打印预览”选项卡。
CMFCRibbonBar::EnableToolTips 启用或禁用功能区栏的工具提示或工具提示说明。
CMFCRibbonBar::FindByData 使用用户指定的数据查找功能区元素。
CMFCRibbonBar::FindByID 查找具有指定命令 ID 的功能区元素。
CMFCRibbonBar::FindCategoryIndexByData 查找包含用户定义数据的功能区类别的索引。
CMFCRibbonBar::ForceRecalcLayout
CMFCRibbonBar::GetActiveCategory 获取指向活动类别的指针。
CMFCRibbonBar::GetCaptionHeight 返回标题高度。 (替代 CBasePane::GetCaptionHeight。)
CMFCRibbonBar::GetCategory 获取指向位于指定索引处的类别的指针。
CMFCRibbonBar::GetCategoryCount 获取功能区栏中功能区类别的数目。
CMFCRibbonBar::GetCategoryHeight
CMFCRibbonBar::GetCategoryIndex 返回功能区类别的索引。
CMFCRibbonBar::GetContextName 检索通过使用 ID 指定的上下文类别标题的名称。
CMFCRibbonBar::GetDroppedDown
CMFCRibbonBar::GetElementsByID 获取一个数组,该数组包含指向具有指定 ID 的所有功能区元素的指针。
CMFCRibbonBar::GetApplicationButton 获取指向功能区按钮的指针。
CMFCRibbonBar::GetFocused 返回焦点元素。
CMFCRibbonBar::GetHideFlags
CMFCRibbonBar::GetItemIDsList
CMFCRibbonBar::GetKeyboardNavigationLevel
CMFCRibbonBar::GetKeyboardNavLevelCurrent
CMFCRibbonBar::GetKeyboardNavLevelParent
CMFCRibbonBar::GetMainCategory 返回指向当前选定功能区类别的指针。
CMFCRibbonBar::GetQATCommandsLocation
CMFCRibbonBar::GetQATDroppedDown
CMFCRibbonBar::GetQuickAccessCommands 填充列表,该列表包含快速访问工具栏上显示的所有元素的命令 ID。
CMFCRibbonBar::GetQuickAccessToolbarLocation
CMFCRibbonBar::GetTabTrancateRatio
CMFCRibbonBar::GetTooltipFixedWidthLargeImage
CMFCRibbonBar::GetTooltipFixedWidthRegular
CMFCRibbonBar::GetVisibleCategoryCount
CMFCRibbonBar::HideAllContextCategories 隐藏所有活动的且可见的类别。
CMFCRibbonBar::HideKeyTips
CMFCRibbonBar::HitTest 查找一个指针,该指针指向位于功能区栏客户端坐标中指定点的功能区元素。
CMFCRibbonBar::IsKeyTipEnabled 确定是否启用键提示。
CMFCRibbonBar::IsMainRibbonBar
CMFCRibbonBar::IsPrintPreviewEnabled 确定是否启用“打印预览”选项卡。
CMFCRibbonBar::IsQATEmpty
CMFCRibbonBar::IsQuickAccessToolbarOnTop 指定快速访问工具栏是否位于功能区栏上方。
CMFCRibbonBar::IsReplaceFrameCaption 确定功能区栏是替换主框架标题还是添加到框架标题的下方。
CMFCRibbonBar::IsShowGroupBorder
CMFCRibbonBar::IsToolTipDescrEnabled 确定是否启用工具提示说明。
CMFCRibbonBar::IsToolTipEnabled 确定是否禁用工具提示说明。
CMFCRibbonBar::IsTransparentCaption
CMFCRibbonBar::IsWindows7Look 指示功能区是否具有 Windows 7 样式的外观(小型矩形应用程序按钮)。
CMFCRibbonBar::LoadFromResource 已重载。 从应用程序资源加载功能区栏。
CMFCRibbonBar::OnClickButton
CMFCRibbonBar::OnEditContextMenu
CMFCRibbonBar::OnRTLChanged (替代 CPane::OnRTLChanged。)
CMFCRibbonBar::OnSetAccData (替代 CBasePane::OnSetAccData。)
CMFCRibbonBar::OnShowRibbonContextMenu
CMFCRibbonBar::OnShowRibbonQATMenu
CMFCRibbonBar::OnSysKeyDown
CMFCRibbonBar::OnSysKeyUp
CMFCRibbonBar::PopTooltip
CMFCRibbonBar::PreTranslateMessage (替代 CBasePane::PreTranslateMessage。)
CMFCRibbonBar::RecalcLayout (替代 CPane::RecalcLayout。)
CMFCRibbonBar::RemoveAllCategories 从功能区栏删除所有功能区类别。
CMFCRibbonBar::RemoveAllFromTabs 从选项卡区域删除所有功能区元素。
CMFCRibbonBar::RemoveCategory 删除位于指定索引处的功能区类别。
CMFCRibbonBar::SaveToXMLBuffer 将功能区栏保存到缓冲区。
CMFCRibbonBar::SaveToXMLFile 将功能区栏保存到 XML 文件。
CMFCRibbonBar::SetActiveCategory 将指定功能区类别设置为活动。
CMFCRibbonBar::SetActiveMDIChild
CMFCRibbonBar::SetElementKeys 为具有指定命令 ID 的所有功能区元素设置指定键提示。
CMFCRibbonBar::SetApplicationButton 向功能区栏分配应用程序功能区按钮。
CMFCRibbonBar::SetKeyboardNavigationLevel
CMFCRibbonBar::SetMaximizeMode
CMFCRibbonBar::SetQuickAccessCommands 向快速访问工具栏添加一个或多个功能区元素。
CMFCRibbonBar::SetQuickAccessDefaultState 指定快速访问工具栏的默认状态。
CMFCRibbonBar::SetQuickAccessToolbarOnTop 将快速访问工具栏 (QAT) 定位在功能区栏上方或下方。
CMFCRibbonBar::SetTooltipFixedWidth
CMFCRibbonBar::SetWindows7Look 启用/禁用功能区的 Windows 7 样式的外观(小型矩形应用程序按钮)
CMFCRibbonBar::ShowCategory 显示或隐藏指定的功能区类别。
CMFCRibbonBar::ShowContextCategories 显示或隐藏具有指定 ID 的上下文类别。
CMFCRibbonBar::ShowKeyTips
CMFCRibbonBar::ToggleMimimizeState 在最小化和最大化状态之间切换功能区栏。
CMFCRibbonBar::TranslateChar

备注

Microsoft 在发布 Microsoft Office 2007 时同时引入了 Office Fluent 功能区。 该功能区栏不仅仅是一个新控件。 它代表了一个新的用户界面范例。 功能区是一个包含一组称为类别的选项卡的窗格。 各类别以逻辑方式拆分为不同的功能区面板,而各面板可包含各种控件和命令按钮。

功能区栏上显示的元素可进行缩放以实现可用空间的最佳利用。 例如,如果一个功能区面板具有足够的空间来显示其元素,它便成为一个菜单按钮,可在一个弹出菜单上显示子项。 功能区栏的行为方式与静态(非浮点)控件栏一样,并可以停靠在框架顶部。

你可以使用 CMFCRibbonStatusBar 类来实现一个类似于 Office 2007 中所用的状态栏。 一个功能区类别包含(并显示)一组功能区面板。 每个功能区面板包含一个或多个功能区元素,这些元素派生自 CMFCRibbonBaseElement

有关如何向现有 MFC 应用程序添加功能区栏的信息,请参阅演练:更新 MFC 自由曲线应用程序

继承层次结构

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCRibbonBar

要求

标头afxribbonbar.h

CMFCRibbonBar::ActivateContextCategory

激活已经可见的上下文类别。

BOOL ActivateContextCategory(UINT uiContextID);

参数

uiContextID
[in] 上下文类别 ID。

返回值

如果找到并激活了具有 uiContextID 的上下文类别,则为 TRUE;否则 FALSE

CMFCRibbonBar::AddCategory

为功能区栏创建和初始化新的功能区类别。

CMFCRibbonCategory* AddCategory(
    LPCTSTR lpszName,
    UINT uiSmallImagesResID,
    UINT uiLargeImagesResID,
    CSize sizeSmallImage= CSize(16,
    16),
    CSize sizeLargeImage= CSize(32,
    32),
    int nInsertAt = -1,
    CRuntimeClass* pRTI= NULL);

参数

lpszName
[in] 功能区类别的名称。

uiSmallImagesResID
[in] 功能区类别的小图像列表的资源 ID。

uiLargeImagesResID
[in] 功能区类别的大图像列表的资源 ID。

sizeSmallImage
[in] 为功能区类别指定小图像的大小。

sizeLargeImage
[in] 为功能区类别指定大图像的大小。

nInsertAt
[in] 类别位置的从零开始的索引。

pRTI
[in] 一个指针,指向 CMFCRibbonCategory运行时类,以在运行时动态创建功能区类别。

返回值

如果此方法成功,则为指向新功能区类别的指针;否则为 NULL

备注

如果 pRTI 参数不为 NULL,则使用运行时类动态创建新功能区类别。

示例

以下示例演示了如何在 CMFCRibbonBar 类中使用 AddCategory 方法。

// Add "Home" category.
// CMFCRibbonBar m_wndRibbonBar
strTemp.LoadString(IDS_RIBBON_HOME);
CMFCRibbonCategory *pCategoryHome = m_wndRibbonBar.AddCategory(strTemp,
                                                               IDB_WRITESMALL, IDB_WRITELARGE);

CMFCRibbonBar::AddContextCategory

为功能区栏创建和初始化新的上下文类别。

CMFCRibbonCategory* AddContextCategory(
    LPCTSTR lpszName,
    LPCTSTR lpszContextName,
    UINT uiContextID,
    AFX_RibbonCategoryColor clrContext,
    UINT uiSmallImagesResID,
    UINT uiLargeImagesResID,
    CSize sizeSmallImage = CSize(16,
    16),
    CSize sizeLargeImage = CSize(32,
    32),
    CRuntimeClass* pRTI = NULL);

参数

lpszName
[in] 类别的名称。

lpszContextName
[in] 上下文类别标题的名称。

uiContextID
[in] 上下文 ID。

clrContext
[in] 上下文类别标题的颜色。

uiSmallImagesResID
[in] 上下文类别的小图像的资源 ID。

uiLargeImagesResID
[in] 上下文类别的大图像的资源 ID。

sizeSmallImage
[in] 小图像的大小。

sizeLargeImage
[in] 大图像的大小。

pRTI
[in] 指向运行时类的指针。

返回值

指向新创建的类别的指针;如果 pRTICreateObject 方法无法创建指定的类别,则为 NULL

备注

使用此函数添加上下文类别。 上下文类别是一种特殊类型的类别,可以在运行时显示或隐藏,具体取决于当前应用程序上下文。 例如,当用户选择对象时,你可以显示带有上下文类别的特殊选项卡,用于更改特定的选定对象。

上下文类别的颜色可以是以下值之一:

  • AFX_CategoryColor_None

  • AFX_CategoryColor_Red

  • AFX_CategoryColor_Orange

  • AFX_CategoryColor_Yellow

  • AFX_CategoryColor_Green

  • AFX_CategoryColor_Blue

  • AFX_CategoryColor_Indigo

  • AFX_CategoryColor_Violet

CMFCRibbonBar::AddMainCategory

为功能区栏创建一个新的主功能区类别。

CMFCRibbonMainPanel* AddMainCategory(
    LPCTSTR lpszName,
    UINT uiSmallImagesResID,
    UINT uiLargeImagesResID,
    CSize sizeSmallImage = CSize(16,
    16),
    CSize sizeLargeImage = CSize(32,
    32));

参数

lpszName
[in] 主功能区类别的名称。

uiSmallImagesResID
[in] 小图像的资源 ID。

uiLargeImagesResID
[in] 大图像的资源 ID。

sizeSmallImage
[in] 小图像的大小。

sizeLargeImage
[in] 大图像的大小。

返回值

如果此方法成功,则为指向新的主功能区类别的指针;否则为 NULL

备注

如果主功能区类别已存在,则会将其删除。

示例

以下示例演示了如何在 CMFCRibbonBar 类中使用 AddMainCategory 方法。

// m_wndRibbonBar is declared as a protected member variable
// CMFCRibbonBar m_wndRibbonBar.
// strTemp is a CString variable.
strTemp.LoadString(IDS_RIBBON_FILE);
CMFCRibbonMainPanel *pMainPanel = m_wndRibbonBar.AddMainCategory(strTemp,
                                                                 IDB_FILESMALL, IDB_FILELARGE);

CMFCRibbonBar::AddPrintPreviewCategory

在功能区栏上创建打印预览类别。

CMFCRibbonCategory* AddPrintPreviewCategory();

返回值

如果此方法成功,则为指向新功能区类别的指针;否则为 NULL

备注

此方法将创建功能区类别及其提供打印预览所需的控件。

CMFCRibbonBar::AddQATOnlyCategory

创建快速访问工具栏功能区类别。

CMFCRibbonCategory* AddQATOnlyCategory(
    LPCTSTR lpszName,
    UINT uiSmallImagesResID,
    CSize sizeSmallImage = CSize(16,
    16));

参数

lpszName
[in] 类别的名称。

uiSmallImagesResID
[in] 类别的图像列表的资源 ID。

sizeSmallImage
[in] 类别中功能区元素的图像大小。

返回值

如果此方法成功,则为指向新类别的指针;否则为 NULL

备注

快速访问工具栏功能区类别仅用于快速访问工具栏自定义对话框。

CMFCRibbonBar::AddToTabs

将指定的功能区元素添加到功能区栏的选项卡行。

void AddToTabs(CMFCRibbonBaseElement* pElement);

参数

pElement
[in] 指向功能区元素的指针。

备注

功能区元素位于所有系统按钮之前。

CMFCRibbonBar::CMFCRibbonBar

构造并初始化一个 CMFCRibbonBar 对象。

CMFCRibbonBar(BOOL bReplaceFrameCaption = TRUE);

参数

bReplaceFrameCaption
[in] TRUE 表示功能区栏替换主框架窗口的标题;FALSE 表示功能区栏位于主框架窗口的标题下方。

备注

CMFCRibbonBar::Create

为功能区栏创建窗口。

BOOL Create(
    CWnd* pParentWnd,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP,
    UINT nID = AFX_IDW_RIBBON_BAR);

参数

pParentWnd
[in] 指向功能区栏的父窗口的指针。

dwStyle
[in] 新窗口样式的逻辑组合。

nID
[in] 新窗口的 ID。

返回值

如果创建了窗口,则为 TRUE;否则为 FALSE

备注

示例

下面的示例演示如何使用 CMFCRibbonBar 类的 Create 方法。

// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.Create(this, WS_CHILD | CBRS_TOP);

CMFCRibbonBar::CreateEx

为功能区栏创建窗口。

BOOL CreateEx(
    CWnd* pParentWnd,
    DWORD dwCtrlStyle = 0,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP,
    UINT nID = AFX_IDW_RIBBON_BAR);

参数

pParentWnd
[in] 指向功能区栏的父窗口的指针。

dwCtrlStyle
[in] 不使用此参数。

dwStyle
[in] 新窗口样式的逻辑组合。

nID
[in] 新窗口的 ID。

返回值

如果创建了窗口,则为 TRUE;否则为 FALSE

备注

CMFCRibbonBar::DeactivateKeyboardFocus

关闭功能区栏上的所有快捷键提示控件。

void DeactivateKeyboardFocus(BOOL bSetFocus = TRUE);

参数

bSetFocus
[in] TRUE 表示将焦点设置为功能区栏的父窗口。

备注

CMFCRibbonBar::DrawMenuImage

绘制菜单按钮的图像。

BOOL DrawMenuImage(
    CDC* pDC,
    const CMFCToolBarMenuButton* pMenuItem,
    const CRect& rectImage);

参数

pDC
[in] 指向菜单按钮的设备上下文的指针。

pMenuItem
[in] 指向工具栏菜单按钮的指针。

rectImage
[in] 菜单按钮的显示矩形。

返回值

如果绘制了图像,则为 TRUE;否则为 FALSE

备注

CMFCRibbonBar::DWMCompositionChanged

在启用或禁用桌面窗口管理器 (DWM) 组合时调整功能区栏的显示。

virtual void DWMCompositionChanged();

备注

CMFCRibbonBar::EnableKeyTips

启用或禁用功能区栏的快捷键提示功能。

void EnableKeyTips(BOOL bEnable = TRUE);

参数

bEnable
[in] TRUE 表示启用快捷键提示功能;FALSE 表示禁用快捷键提示功能。

注解

启用此功能后,当用户按下 ALT 或 F10 键时会显示快捷键提示。 当用户按下 ALT 键时,快捷键提示会以 200 毫秒的延迟显示。 此延迟允许执行快捷方式时,按下的 ALT 键不干扰包含 ALT 键的其他组合。

CMFCRibbonBar::EnablePrintPreview

启用或禁用“打印预览”功能。

void EnablePrintPreview(BOOL bEnable = TRUE);

参数

bEnable
[in] TRUE 表示启用“打印预览”功能;FALSE 表示禁用“打印预览”功能。

注解

如果 bEnableFALSE 并且存在打印预览类别,则会将其删除。

默认情况下,“打印预览”功能处于启用状态。

CMFCRibbonBar::EnableToolTips

启用或禁用功能区栏上的工具提示和可选工具提示说明。

void EnableToolTips(
    BOOL bEnable = TRUE,
    BOOL bEnableDescr = TRUE);

参数

bEnable
[in] TRUE 表示启用功能区栏上的工具提示;FALSE 表示禁用功能区栏上的工具提示。

bEnableDescr
[in] TRUE 表示启用工具提示上的工具提示说明;FALSE 表示禁用工具提示上的工具提示说明。

备注

bEnable 参数用于确定当鼠标悬停在功能区元素上时是否显示工具提示。 bEnableDescr 参数用于确定附加描述性文本是否随工具提示文本一起显示。

CMFCRibbonBar::FindByData

如果功能区元素具有指定的数据和可见性,则检索指向该元素的指针。

CMFCRibbonBaseElement* FindByData(
    DWORD_PTR dwData,
    BOOL bVisibleOnly = TRUE) const;

参数

dwData
[in] 与功能区元素关联的数据。

bVisibleOnly
[in] TRUE 表示仅搜索可见的功能区元素;FALSE 表示搜索所有功能区元素。

返回值

指向功能区元素(如果具有指定的数据和可见性)的指针;否则为 NULL

备注

功能区元素是可以添加到功能区的任何控件,例如功能区按钮、功能区类别或功能区滑块。

CMFCRibbonBar::FindByID

检索指向功能区元素的指针,该元素具有指定的命令 ID 和搜索值。

CMFCRibbonBaseElement* FindByID(
    UINT uiCmdID,
    BOOL bVisibleOnly = TRUE,
    BOOL bExcludeQAT = FALSE) const;

参数

uiCmdID
[in] 功能区元素的命令 ID。

bVisibleOnly
[in] TRUE 表示仅搜索可见的功能区元素;FALSE 表示搜索所有功能区元素。

bExcludeQAT
[in] TRUE 表示从搜索中排除快速访问工具栏元素;否则为 FALSE

返回值

指向功能区元素(如果具有指定的命令 ID 和搜索值)的指针;否则为 NULL

备注

功能区元素是可以添加到功能区的任何功能区控件,例如功能区按钮、功能区类别或功能区滑块。

通常,可以有多个功能区元素具有相同的命令 ID。 如果要获取指向使用指定命令 ID 的所有功能区元素的指针,请使用 CMFCRibbonBar::GetElementsByID 方法。

CMFCRibbonBar::FindCategoryIndexByData

检索包含指定数据的功能区类别的索引。

int FindCategoryIndexByData(DWORD dwData) const;

参数

dwData
[in] 与功能区类别关联的数据。

返回值

如果此方法成功,则为功能区类别的从零开始的索引;否则为 -1。

CMFCRibbonBar::ForceRecalcLayout

调整功能区栏和父窗口中所有项的布局,并重新绘制整个窗口。

void ForceRecalcLayout();

注解

CMFCRibbonBar::GetActiveCategory

检索指向活动功能区类别的指针。

CMFCRibbonCategory* GetActiveCategory() const;

返回值

指向活动功能区类别的指针;如果没有活动类别,则为 NULL

注解

如果类别具有焦点,则表示其处于活动状态。 默认情况下,活动类别是功能区栏左侧的第一个类别。

主类别在用户按下应用程序按钮时显示,它不能是活动类别。

CMFCRibbonBar::GetApplicationButton

检索指向应用程序按钮的指针。

CMFCRibbonApplicationButton* GetApplicationButton() const;

返回值

指向应用程序按钮的指针;如果尚未设置按钮,则为 NULL

CMFCRibbonBar::GetCaptionHeight

检索功能区栏标题区域的高度。

int GetCaptionHeight() const;

返回值

功能区栏标题区域的高度(以像素为单位)。

注解

CMFCRibbonBar::GetCategory

检索指向指定索引处的功能区类别的指针。

CMFCRibbonCategory* GetCategory(int nIndex) const;

参数

nIndex
[in] 功能区栏中包含的功能区类别列表中的功能区类别的索引(从零开始)。

返回值

指向指定索引处的功能区类别的指针;如果 nIndex 超出范围,则为 NULL

CMFCRibbonBar::GetCategoryCount

检索功能区栏中功能区类别的数目。

int GetCategoryCount() const;

返回值

功能区栏中功能区类别的数目。

CMFCRibbonBar::GetCategoryHeight

检索类别的高度。

int GetCategoryHeight() const;

返回值

类别的高度。

备注

类别高度包括类别选项卡的高度。

CMFCRibbonBar::GetCategoryIndex

检索指定功能区类别的索引。

int GetCategoryIndex(CMFCRibbonCategory* pCategory) const;

参数

pCategory
[in] 指向功能区类别的指针。

返回值

pCategory 指定的功能区类别的索引(从零开始);如果未找到功能区类别,则为 -1。

CMFCRibbonBar::GetContextName

检索由上下文 ID 指定的上下文类别标题的名称。

BOOL GetContextName(
    UINT uiContextID,
    CString& strName) const;

参数

uiContextID
[in] 功能区类别上下文 ID。

strName
[out] 上下文类别标题的名称。

返回值

如果此方法成功,则为 TRUE;如果 uiContextID 为零或者未找到上下文类别标题,则为 FALSE

CMFCRibbonBar::GetDroppedDown

检索当前下拉的功能区元素。

virtual CMFCRibbonBaseElement* GetDroppedDown();

返回值

当前下拉的功能区元素;如果没有当前下拉的功能区元素,则为 NULL

注解

CMFCRibbonBar::GetElementsByID

检索一个指针数组,这些指针指向具有特定命令 ID 的所有功能区元素。

void GetElementsByID(
    UINT uiCmdID,
    CArray<CMFCRibbonBaseElement*,CMFCRibbonBaseElement*>& arButtons);

参数

uiCmdID
[in] 功能区元素的命令 ID。

arButtons
[out] 指向功能区元素的指针数组。

备注

多个功能区元素可以具有相同的命令 ID,因为某些功能区元素可以复制到快速访问工具栏。

CMFCRibbonBar::GetHideFlags

检索指示功能区栏可见程度的标志。

DWORD GetHideFlags() const;

返回值

指示功能区栏可见程度的标志。

注解

下表列出了返回值的可能标志组合:

标记 说明
AFX_RIBBONBAR_HIDE_ELEMENTS 功能区栏垂直最小化,只有类别选项卡、主按钮和快速访问工具栏可见。
AFX_RIBBONBAR_HIDE_ALL 功能区栏的宽度小于最小宽度,并且完全隐藏。

CMFCRibbonBar::GetItemIDsList

检索功能区栏上指定功能区元素集合的命令 ID。

void GetItemIDsList(CList<UINT, UINT>& lstItems,
    BOOL bHiddenOnly = FALSE) const;

参数

lstItems
[out] 功能区栏中包含的功能区元素的命令 ID 列表。

bHiddenOnly
[in] TRUE 表示排除显示的功能区元素;FALSE 表示在功能区栏中包含所有功能区元素。

备注

CMFCRibbonBar::GetKeyboardNavigationLevel

在用户按下功能区栏上包含的快捷键提示时检索当前导航级别。

int GetKeyboardNavigationLevel() const;

返回值

用户按下功能区栏上包含的快捷键提示时的当前导航级别。 下表列出了可能的返回值:

说明
-1 不显示快捷键提示。
0 显示快捷键提示。
1 用户已按下显示的快捷键提示。

备注

CMFCRibbonBar::GetKeyboardNavLevelCurrent

检索功能区栏上的当前键盘导航对象。

CObject* GetKeyboardNavLevelCurrent() const;

返回值

功能区栏上的当前键盘导航对象;如果当前没有对象显示快捷键提示,则为 NULL

注解

当前显示快捷键提示的对象是当前键盘导航对象。

CMFCRibbonBar::GetKeyboardNavLevelParent

检索功能区栏上的父键盘导航对象。

CObject* GetKeyboardNavLevelParent() const;

返回值

功能区栏上的父键盘导航对象;否则为 NULL

备注

当用户按下功能区栏上的快捷键提示时,当前键盘导航对象变成父键盘导航对象。

CMFCRibbonBar::GetMainCategory

检索指向主功能区类别的指针。

CMFCRibbonCategory* GetMainCategory() const;

返回值

指向主功能区类别的指针。

注解

主功能区类别包含主功能区面板。

CMFCRibbonBar::GetQATCommandsLocation

检索快速访问工具栏的命令部分的显示矩形。

CRect GetQATCommandsLocation() const;

返回值

快速访问工具栏的命令部分的显示矩形。

备注

显示矩形的命令部分不包括自定义按钮。

CMFCRibbonBar::GetQATDroppedDown

检索一个指针,该指针指向快速访问工具栏上弹出菜单已下拉的功能区元素。

CMFCRibbonBaseElement* GetQATDroppedDown();

返回值

一个指针,指向快速访问工具栏上弹出菜单已下拉的功能区元素。

备注

CMFCRibbonBar::GetQuickAccessCommands

检索快速访问工具栏上功能区元素的命令 ID 列表。

void GetQuickAccessCommands(CList<UINT,UINT>& lstCommands);

参数

lstCommands
[out] 快速访问工具栏上功能区元素的命令 ID 列表。

备注

该列表不包含用作控件分隔符的功能区元素。

CMFCRibbonBar::GetQuickAccessToolbarLocation

检索快速访问工具栏的显示矩形。

CRect GetQuickAccessToolbarLocation() const;

返回值

快速访问工具栏的显示矩形。

备注

CMFCRibbonBar::GetTabTrancateRatio

检索类别选项卡的显示宽度的缩小百分比。

int GetTabTrancateRatio() const;

返回值

类别选项卡的显示宽度的缩小百分比。

备注

当功能区栏上没有足够的宽度时,类别选项卡的宽度会减小。

CMFCRibbonBar::GetTooltipFixedWidthLargeImage

检索功能区栏的工具提示宽度的大尺寸。

int GetTooltipFixedWidthLargeImage() const;

返回值

工具提示宽度的大尺寸(以像素为单位)。

备注

如果工具提示宽度的大尺寸为 0,则宽度会发生变化。

CMFCRibbonBar::GetTooltipFixedWidthRegular

检索功能区栏的工具提示宽度的常规尺寸。

int GetTooltipFixedWidthRegular() const;

返回值

工具提示宽度的常规尺寸(以像素为单位)。

备注

如果工具提示宽度的常规尺寸为 0,则宽度会发生变化。

CMFCRibbonBar::GetVisibleCategoryCount

检索功能区栏上的可见类别数。

int GetVisibleCategoryCount() const;

返回值

功能区栏上的可见类别数。

备注

CMFCRibbonBar::HideAllContextCategories

隐藏功能区栏上的所有上下文类别。

BOOL HideAllContextCategories();

返回值

如果至少隐藏了一个上下文类别,则为 TRUE;否则为 FALSE

注解

如果上下文类别处于活动状态,则活动类别将重置为类别列表中的第一个可见类别。

CMFCRibbonBar::HideKeyTips

隐藏功能区栏上的所有快捷键提示。

void HideKeyTips();

注解

CMFCRibbonBar::HitTest

检索一个指针,该指针指向点位置指定的功能区元素。

virtual CMFCRibbonBaseElement* HitTest(
    CPoint point,
    BOOL bCheckActiveCategory= FALSE,
    BOOL bCheckPanelCaption= FALSE);

参数

point
[in] 功能区栏坐标中点的位置。

bCheckActiveCategory
[in] TRUE 表示搜索活动类别;FALSE 表示不搜索活动类别。

bCheckPanelCaption
[in] TRUE 表示测试带有点的功能区面板的标题;FALSE 表示不测试带有点的功能区面板的标题。 有关详细信息,请参阅备注部分。

返回值

指向位于指定点的功能区元素的指针;如果该点不在功能区元素中,则为 NULL

备注

除非 bCheckActiveCategory 参数为 TRUE,否则不测试带有点的功能区面板的标题。

CMFCRibbonBar::IsKeyTipEnabled

指示是否启用快捷键提示功能。

BOOL IsKeyTipEnabled() const;

返回值

如果启用快捷键提示功能,则为 TRUE;否则为 FALSE

CMFCRibbonBar::IsMainRibbonBar

指示功能区栏是否为主功能区栏。

virtual BOOL IsMainRibbonBar() const;

返回值

始终返回 TRUE

备注

默认情况下,此方法始终返回 TRUE。 重写此方法以指示功能区栏是否为主功能区栏。

CMFCRibbonBar::IsPrintPreviewEnabled

指示是否启用“打印预览”功能。

BOOL IsPrintPreviewEnabled() const;

返回值

如果启用“打印预览”功能,则为 TRUE;否则为 FALSE

CMFCRibbonBar::IsQATEmpty

指示快速访问工具栏是否包含命令按钮。

BOOL IsQATEmpty() const;

返回值

如果快速访问工具栏包含命令按钮,则为 TRUE;否则为 FALSE

备注

CMFCRibbonBar::IsQuickAccessToolbarOnTop

指示快速访问工具栏位于功能区栏上方还是下方。

BOOL IsQuickAccessToolbarOnTop() const;

返回值

如果快速访问工具栏位于功能区栏上方,则为 TRUE;如果快速访问工具栏位于功能区栏下方,则为 FALSE

CMFCRibbonBar::IsReplaceFrameCaption

指示功能区栏是替换主框架窗口的标题还是位于主框架窗口的标题下方。

BOOL IsReplaceFrameCaption() const;

返回值

如果功能区栏替换主框架窗口的标题,则为 TRUE;如果功能区栏位于主框架窗口的标题下方,则为 FALSE

CMFCRibbonBar::IsShowGroupBorder

指示功能区栏上的按钮组是否显示组边框。

virtual BOOL IsShowGroupBorder(CMFCRibbonButtonsGroup* pGroup) const;

参数

pGroup
[in] 不使用此参数。

返回值

始终返回 FALSE

备注

默认情况下,此方法始终返回 FALSE。 重写此方法以指示功能区栏上的按钮组是否显示组边框。

CMFCRibbonBar::IsToolTipDescrEnabled

指示是否启用工具提示说明。

BOOL IsToolTipDescrEnabled() const;

返回值

如果启用工具提示说明,则为 TRUE;如果禁用工具提示说明,则为 FALSE

备注

工具提示说明是随工具提示文本一起显示的附加描述性文本。

CMFCRibbonBar::IsToolTipEnabled

指示是为功能区栏启用还是禁用工具提示。

BOOL IsToolTipEnabled() const;

返回值

如果启用工具提示,则为 TRUE;如果禁用工具提示,则为 FALSE

CMFCRibbonBar::IsTransparentCaption

指示是否为 Windows Aero 配色方案设置显示。

BOOL IsTransparentCaption() const;

返回值

如果配色方案为 Windows Aero,则为 TRUE;否则为 FALSE

备注

CMFCRibbonBar::OnClickButton

保留此方法是为了向后兼容现有的应用程序,不应在新的开发中使用此方法。

virtual void OnClickButton(
    CMFCRibbonButton* pButton,
    CPoint point);

参数

pButton
[in] 指向已单击的按钮的指针。

point
[in] 不使用此参数。

备注

CMFCRibbonBar::OnEditContextMenu

virtual void OnEditContextMenu(
    CMFCRibbonRichEditCtrl* pEdit,
    CPoint point);

参数

[in] pEdit
[in] point\

备注

CMFCRibbonBar::OnRTLChanged

当布局更改方向时,由框架调用。

virtual void OnRTLChanged(BOOL bIsRTL);

参数

bIsRTL
[in] 如果布局为从右到左,则为 TRUE;如果布局为从左到右,则为 FALSE

备注

此方法针对新布局方向调整功能区栏上所有控件的布局。

CMFCRibbonBar::OnSetAccData

此方法是 Framework 的内部方法,不可从用户代码中调用。

BOOL OnSetAccData(long lVal);

参数

long lVal 可访问对象的索引。

返回值

如果成功,则为 S_OK;否则为 FALSES_FALSE

备注

CMFCRibbonBar::OnShowRibbonContextMenu

virtual BOOL OnShowRibbonContextMenu(
    CWnd* pWnd,
    int x,
    int y,
    CMFCRibbonBaseElement* pHit);

参数

[in] pWnd
[in] x
[in] y
[in] pHit\

返回值

备注

CMFCRibbonBar::OnShowRibbonQATMenu

virtual BOOL OnShowRibbonQATMenu(
    CWnd* pWnd,
    int x,
    int y,
    CMFCRibbonBaseElement* pHit);

参数

[in] pWnd
[in] x
[in] y
[in] pHit\

返回值

备注

CMFCRibbonBar::OnSysKeyDown

当用户按下 F10 键,或者按住 ALT 键的同时按下另一个键时,由框架调用。

BOOL OnSysKeyDown(
    CFrameWnd* pFrameWnd,
    WPARAM wParam,
    LPARAM lParam);

参数

pFrameWnd
[in] 指向功能区栏的父主框架窗口的指针。

wParam
[in] 所按键的虚拟键代码。

lParam
[in] 按下键时的键盘状态标志。

返回值

如果已处理击键事件,则为 TRUE;否则为 FALSE

备注

CMFCRibbonBar::OnSysKeyUp

当用户松开 F10 键、ALT 键或按住 ALT 键时按下的键时,由框架调用。

BOOL OnSysKeyUp(
    CFrameWnd* pFrameWnd,
    WPARAM wParam,
    LPARAM lParam);

参数

pFrameWnd
[in] 指向功能区栏的父主框架窗口的指针。

wParam
[in] 松开的键的虚拟键代码。

lParam
[in] 不使用此参数。

返回值

如果已处理击键事件,则为 TRUE;否则为 FALSE

注解

CMFCRibbonBar::PopTooltip

从视图中移除工具提示。

void PopTooltip();

备注

CMFCRibbonBar::PreTranslateMessage

确定指定的消息是否由功能区栏处理。

virtual BOOL PreTranslateMessage(MSG* pMsg);

参数

pMsg
[in] 指向消息的指针。

返回值

如果消息已由功能区栏处理,则为 TRUE;否则为 FALSE

注解

CMFCRibbonBar::RecalcLayout

调整功能区栏上所有控件的布局。

virtual void RecalcLayout();

注解

调整布局后,功能区栏的显示将更新。

CMFCRibbonBar::RemoveAllCategories

从功能区栏删除所有功能区类别。

void RemoveAllCategories();

备注

此方法将从内存和类别列表中删除所有功能区类别。

CMFCRibbonBar::RemoveAllFromTabs

从选项卡区域删除所有功能区元素。

void RemoveAllFromTabs();

注解

如果要移除使用 CMFCRibbonBar::AddToTabs 方法添加到选项卡区域的所有元素,请使用此函数。

CMFCRibbonBar::RemoveCategory

从功能区栏中删除指定的功能区类别。

BOOL RemoveCategory(int nIndex);

参数

nIndex
[in] 功能区栏中包含的功能区类别列表中的类别的索引(从零开始)。

返回值

如果删除了指定的功能区类别,则为 TRUE;否则为 FALSE

注解

从内存和类别列表中删除指定的功能区类别。

CMFCRibbonBar::SetActiveCategory

将指定的功能区类别设置为活动类别。

BOOL SetActiveCategory(
    CMFCRibbonCategory* pCategory,
    BOOL bForceRestore= FALSE);

参数

pCategory
[in] 功能区栏中包含的功能区类别。

bForceRestore
[in] TRUE 表示最大化功能区栏(如果已最小化);FALSE 表示在弹出窗口中显示活动类别(如果功能区栏已最小化)。

返回值

如果指定类别设置为活动类别,则为 TRUE;否则为 FALSE

备注

主功能区类别不能是活动类别。

如果 pCategory 指定的类别未显示,则无法将其设置为活动类别。

CMFCRibbonBar::SetActiveMDIChild

将功能区栏上属于多文档界面 (MDI) 子窗口的系统按钮与指定的 MDI 子窗口相关联。

void SetActiveMDIChild(CWnd* pWnd);

参数

pWnd
[in] 指向 MDI 子窗口的指针。

注解

CMFCRibbonBar::SetApplicationButton

向功能区栏分配应用程序功能区按钮。

void SetApplicationButton(
    CMFCRibbonApplicationButton* pButton,
    CSize sizeButton);

参数

pButton
[in] 指向应用程序功能区按钮的指针。

sizeButton
[in] 应用程序功能区按钮的大小。

备注

应用程序功能区按钮是一个大的圆形按钮,位于功能区控件的左上角。

示例

以下示例演示了如何在 CMFCRibbonBar 类中使用 SetApplicationButton 方法。

// Init main button:
// CMFCRibbonApplicationButton m_MainButton
m_MainButton.SetImage(IDB_MAIN);
m_MainButton.SetText(_T("\nf"));
m_MainButton.SetToolTipText(strTemp);

// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.SetApplicationButton(&m_MainButton, CSize(45, 45));

CMFCRibbonBar::SetElementKeys

为具有指定命令 ID 的所有功能区元素设置快捷键提示。

BOOL SetElementKeys(
    UINT uiCmdID,
    LPCTSTR lpszKeys,
    LPCTSTR lpszMenuKeys= NULL);

参数

uiCmdID
[in] 功能区元素的命令 ID。

lpszKeys
[in] 快捷键提示。

lpszMenuKeys
[in] 菜单快捷键提示。

返回值

如果设置了至少一个功能区元素的快捷键提示,则为 TRUE;否则为 FALSE

注解

可选菜单快捷键提示适用于带有打开弹出菜单的拆分按钮的功能区元素。

CMFCRibbonBar::SetKeyboardNavigationLevel

在用户按下功能区栏上包含的快捷键提示时设置键盘导航级别。

void SetKeyboardNavigationLevel(
    CObject* pLevel,
    BOOL bSetFocus = TRUE);

参数

pLevel
[in] 指向当前键盘导航对象的指针。

bSetFocus
[in] TRUE 表示将键盘焦点设置为功能区栏。

备注

当用户按下 ALT 或 F10 键时,功能区栏的键盘导航开始。 用户通过按下功能区栏上的快捷键提示来选择下一个导航级别。 用户可以通过按 Esc 键返回到先前的导航级别。

CMFCRibbonBar::SetMaximizeMode

当多文档界面 (MDI) 子窗口的窗口大小进入或离开最大化状态时,调整功能区栏。

void SetMaximizeMode(
    BOOL bMax,
    CWnd* pWnd = NULL);

参数

bMax
[in] TRUE 表示在功能区栏上显示 MDI 子窗口的系统按钮;FALSE 表示从功能区栏中移除 MDI 子窗口的系统按钮。

pWnd
[in] 指向功能区栏的主框架窗口的指针。

备注

当 MDI 子窗口最大化时,功能区栏会在选项卡行中显示 MDI 子窗口的系统按钮。

CMFCRibbonBar::SetQuickAccessCommands

向快速访问工具栏添加一个或多个功能区元素。

void SetQuickAccessCommands(
    const CList<UINT,UINT>& lstCommands,
    BOOL bRecalcLayout=TRUE);

参数

lstCommands
[in] 要放置在快速访问工具栏上的命令列表。

bRecalcLayout
[in] 如果要在添加功能区元素后重新绘制功能区,则为 TRUE;否则为 FALSE

示例

以下示例演示了如何在 CMFCRibbonBar 类中使用 SetQuickAccessCommands 方法。

// Add quick access commands to the toolbar
CList<UINT, UINT> lstQATCmds;

lstQATCmds.AddTail(ID_FILE_NEW);
lstQATCmds.AddTail(ID_FILE_OPEN);
lstQATCmds.AddTail(ID_FILE_SAVE);
lstQATCmds.AddTail(ID_FILE_PRINT_DIRECT);

// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.SetQuickAccessCommands(lstQATCmds);

CMFCRibbonBar::SetQuickAccessDefaultState

将快速访问工具栏设置为默认状态。

void SetQuickAccessDefaultState(const CMFCRibbonQuickAccessToolBarDefaultState& state);

参数

state
[in] 快速访问工具栏默认状态。

注解

快速访问工具栏状态包括命令列表及其可见性。

示例

以下示例演示了如何在 CMFCRibbonBar 类中使用 SetQuickAccessDefaultState 方法。

CMFCRibbonQuickAccessToolBarDefaultState *qaToolBarState =
    new CMFCRibbonQuickAccessToolBarDefaultState();
qaToolBarState->AddCommand(ID_FILE_NEW, true);
qaToolBarState->AddCommand(ID_FILE_OPEN, true);
// CMFCRibbonBar m_wndRibbonBar
m_wndRibbonBar.SetQuickAccessDefaultState(*qaToolBarState);

CMFCRibbonBar::SetQuickAccessToolbarOnTop

将快速访问工具栏置于功能区栏上方或下方。

void SetQuickAccessToolbarOnTop(BOOL bOnTop);

参数

bOnTop
[in] TRUE 表示将快速访问工具栏置于功能区栏上方;FALSE 表示将快速访问工具栏置于功能区栏下方。

CMFCRibbonBar::SetTooltipFixedWidth

设置功能区栏的工具提示固定宽度的常规尺寸和大尺寸。

void SetTooltipFixedWidth(
    int nWidthRegular,
    int nWidthLargeImage);

参数

nWidthRegular
[in] 固定大小的常规工具提示的宽度(以像素为单位)。

nWidthLargeImage
[in] 固定大小的大型工具提示的宽度(以像素为单位)。

备注

将参数设置为 0 会导致相应的宽度发生变化。

CMFCRibbonBar::ShowCategory

显示或隐藏指定的功能区类别。

void ShowCategory(
    int nIndex,
    BOOL bShow=TRUE);

参数

nIndex
[in] 功能区类别的索引。

bShow
[in] 如果为 TRUE,则显示功能区类别;否则隐藏功能区类别。

CMFCRibbonBar::ShowContextCategories

显示或隐藏具有指定 ID 的上下文类别。

void ShowContextCategories(
    UINT uiContextID,
    BOOL bShow=TRUE);

参数

uiContextID
[in] 上下文类别 ID。

bShow
[in] 如果为 TRUE,则显示具有指定 ID 的类别;否则隐藏具有指定 ID 的类别。

CMFCRibbonBar::ShowKeyTips

显示功能区栏上每个功能区元素的快捷键提示。

void ShowKeyTips();

注解

CMFCRibbonBar::ToggleMimimizeState

在最小化和最大化状态之间切换功能区栏。

void ToggleMimimizeState();

备注

方法名称中的拼写错误为已知问题。

在最小化状态下,将隐藏功能区控件并只显示选项卡。 当用户单击选项卡时,功能区控件将显示为弹出窗口。 当用户单击或执行命令时,该窗口将关闭。

CMFCRibbonBar::TranslateChar

确定指定的击键字符代码是否由功能区栏处理。

virtual BOOL TranslateChar(UINT nChar);

参数

nChar
[in] 用户击键字符代码。

返回值

如果字符代码已由功能区栏处理,则为 TRUE;否则为 FALSE

注解

快捷键提示功能使用户能够使用键盘导航功能区栏。

CMFCRibbonBar::GetFocused

返回焦点元素。

virtual CMFCRibbonBaseElement* GetFocused();

返回值

指向焦点元素的指针或 NULL

注解

CMFCRibbonBar::IsWindows7Look

指示功能区是否具有 Windows 7 外观(小型矩形应用程序按钮)。

BOOL IsWindows7Look() const;

返回值

如果功能区具有 Windows 7 外观,则为 TRUE;否则为 FALSE

注解

CMFCRibbonBar::LoadFromResource

已重载。 从应用程序资源加载功能区栏。

virtual BOOL LoadFromResource(
    UINT uiXMLResID,
    LPCTSTR lpszResType = RT_RIBBON,
    HINSTANCE hInstance = NULL);

virtual BOOL LoadFromResource(
    LPCTSTR lpszXMLResID,
    LPCTSTR lpszResType = RT_RIBBON,
    HINSTANCE hInstance = NULL);

参数

uiXMLResID
指定包含功能区栏信息的 XML 字符串的资源 ID。

lpszResType
指定位于 uiXMLResID 的资源的类型。

hInstance
其可执行文件包含资源的模块的句柄。 如果 hInstanceNULL,则系统从用于创建当前进程的模块加载资源。

lpszXMLResID
指定包含功能区栏信息的资源 ID(字符串形式)。

返回值

如果加载成功,则为 TRUE;否则为 FALSE

备注

CMFCRibbonBar::SaveToXMLBuffer

将功能区栏保存到缓冲区。

UINT SaveToXMLBuffer(LPBYTE* ppBuffer) const;

参数

ppBuffer
当此函数返回时,ppBuffer 指向由此方法分配的缓冲区,并包含 XML 格式的功能区栏信息。

返回值

如果成功,则返回 TRUE;否则返回 FALSE

注解

CMFCRibbonBar::SaveToXMLFile

将功能区栏保存到 XML 文件。

BOOL SaveToXMLFile(LPCTSTR lpszFilePath) const;

参数

lpszFilePath
指定输出文件。

返回值

如果成功,则返回 TRUE;否则返回 FALSE

注解

CMFCRibbonBar::SetWindows7Look

启用或禁用功能区的 Windows 7 外观(小型矩形应用程序按钮)。

void SetWindows7Look(
    BOOL bWindows7Look,
    BOOL bRecalc = TRUE);

参数

bWindows7Look
TRUE 设置 Windows 7 外观;否则为 FALSE

bRecalc
TRUE 重新计算功能区布局;否则为 FALSE

注解

另请参阅

层次结构图

CPane
CMFCRibbonCategory
CMFCRibbonPanel
CMFCRibbonBaseElement
演练:更新 MFC 自由曲线应用程序