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 |
默认构造函数。 |
公共方法
备注
Microsoft 在发布 Microsoft Office 2007 时同时引入了 Office Fluent 功能区。 该功能区栏不仅仅是一个新控件。 它代表了一个新的用户界面范例。 功能区是一个包含一组称为类别的选项卡的窗格。 各类别以逻辑方式拆分为不同的功能区面板,而各面板可包含各种控件和命令按钮。
功能区栏上显示的元素可进行缩放以实现可用空间的最佳利用。 例如,如果一个功能区面板具有足够的空间来显示其元素,它便成为一个菜单按钮,可在一个弹出菜单上显示子项。 功能区栏的行为方式与静态(非浮点)控件栏一样,并可以停靠在框架顶部。
你可以使用 CMFCRibbonStatusBar
类来实现一个类似于 Office 2007 中所用的状态栏。 一个功能区类别包含(并显示)一组功能区面板。 每个功能区面板包含一个或多个功能区元素,这些元素派生自 CMFCRibbonBaseElement
。
有关如何向现有 MFC 应用程序添加功能区栏的信息,请参阅演练:更新 MFC 自由曲线应用程序。
继承层次结构
要求
标头: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] 指向运行时类的指针。
返回值
指向新创建的类别的指针;如果 pRTI
的 CreateObject
方法无法创建指定的类别,则为 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
表示禁用“打印预览”功能。
注解
如果 bEnable
为 FALSE
并且存在打印预览类别,则会将其删除。
默认情况下,“打印预览”功能处于启用状态。
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
;否则为 FALSE
或 S_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
其可执行文件包含资源的模块的句柄。 如果 hInstance
为 NULL
,则系统从用于创建当前进程的模块加载资源。
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 自由曲线应用程序