CMFCRibbonCategory 类

CMFCRibbonCategory 类可以实现包含一组功能区面板的功能区选项卡。

语法

class CMFCRibbonCategory : public CObject

成员

受保护构造函数

名称 描述
CMFCRibbonCategory::CMFCRibbonCategory 构造函数。

公共方法

名称 描述
CMFCRibbonCategory::AddHidden 将隐藏的元素添加到功能区类别。
CMFCRibbonCategory::AddPanel 将新面板添加到功能区类别。
CMFCRibbonCategory::CopyFrom
CMFCRibbonCategory::FindByData
CMFCRibbonCategory::FindByID
CMFCRibbonCategory::FindPanelWithElem
CMFCRibbonCategory::GetContextID 返回功能区类别的上下文 ID。
CMFCRibbonCategory::GetData 返回与功能区类别关联的用户定义的数据。
CMFCRibbonCategory::GetDroppedDown
CMFCRibbonCategory::GetElements
CMFCRibbonCategory::GetElementsByID
CMFCRibbonCategory::GetFirstVisibleElement 获取属于功能区类别的第一个可见元素。
CMFCRibbonCategory::GetFocused 返回焦点元素。
CMFCRibbonCategory::GetHighlighted 返回突出显示的元素。
CMFCRibbonCategory::GetImageCount
CMFCRibbonCategory::GetImageSize
CMFCRibbonCategory::GetItemIDsList
CMFCRibbonCategory::GetLastVisibleElement 获取属于功能区类别的最后一个可见元素
CMFCRibbonCategory::GetLargeImages 返回对功能区类别使用的大型图像列表的引用。
CMFCRibbonCategory::GetMaxHeight
CMFCRibbonCategory::GetName
CMFCRibbonCategory::GetPanel 返回指向位于指定索引处的功能区面板的指针。
CMFCRibbonCategory::GetPanelCount 返回功能区类别中的功能区面板数。
CMFCRibbonCategory::GetPanelFromPoint
CMFCRibbonCategory::GetPanelIndex 返回指定功能区面板的索引。
CMFCRibbonCategory::GetParentButton
CMFCRibbonCategory::GetParentMenuBar
CMFCRibbonCategory::GetParentRibbonBar
CMFCRibbonCategory::GetRect
CMFCRibbonCategory::GetSmallImages 返回对类别使用的小型图像列表的引用。
CMFCRibbonCategory::GetTabColor 返回功能区类别选项卡的当前颜色。
CMFCRibbonCategory::GetTabRect
CMFCRibbonCategory::GetTextTopLine
CMFCRibbonCategory::GetVisibleElements 获取属于功能区类别的所有可见元素。
CMFCRibbonCategory::HighlightPanel
CMFCRibbonCategory::HitTest
CMFCRibbonCategory::HitTestEx
CMFCRibbonCategory::HitTestScrollButtons
CMFCRibbonCategory::IsActive
CMFCRibbonCategory::IsVisible 确定功能区类别是否可见。
CMFCRibbonCategory::IsWindows7Look 指示父功能区是否具有 Windows 7 样式的外观(小型矩形应用程序按钮)
CMFCRibbonCategory::NotifyControlCommand
CMFCRibbonCategory::OnCancelMode
CMFCRibbonCategory::OnDraw
CMFCRibbonCategory::OnDrawImage
CMFCRibbonCategory::OnDrawMenuBorder
CMFCRibbonCategory::OnKey 当用户按键盘按钮时,由框架调用。
CMFCRibbonCategory::OnLButtonDown
CMFCRibbonCategory::OnLButtonUp
CMFCRibbonCategory::OnMouseMove
CMFCRibbonCategory::OnRTLChanged
CMFCRibbonCategory::OnScrollHorz
CMFCRibbonCategory::OnUpdateCmdUI
CMFCRibbonCategory::RecalcLayout
CMFCRibbonCategory::RemovePanel
CMFCRibbonCategory::ReposPanels
CMFCRibbonCategory::SetCollapseOrder 定义功能区类别中存在的功能区面板的折叠顺序。
CMFCRibbonCategory::SetData 将用户定义的数据存储在功能区类别中。
CMFCRibbonCategory::SetKeys 将快捷键提示分配给功能区类别。
CMFCRibbonCategory::SetName
CMFCRibbonCategory::SetTabColor 设置功能区类别的颜色。

备注

通常,通过调用 CMFCRibbonBar::AddCategory 间接创建功能区类别,它返回一个指向新创建的功能区类别的指针。 通过调用 CMFCRibbonCategory::AddPanel 将面板添加到类别。

CMFCRibbonTab 类绘制功能区类别。 它派生自 CMFCRibbonBaseElement 类

以下示例演示如何创建功能区类别并向其添加面板。

// Create a new ribbon category and get a pointer to it`
CMFCRibbonCategory* pCategory = m_wndRibbonBar.AddCategory
    (_T("&Write"),           // Category name
    IDB_WRITE,               // Category small images (16 x 16)
    IDB_WRITE_LARGE);        // Category large images (32 x 32)

// Add a panel to the new category
CMFCRibbonPanel* pPanel = pCategory->AddPanel (
    _T("Clipboard"),                // Panel name
    m_PanelIcons.ExtractIcon (0));  // Panel icon

下图显示了 RibbonApp 示例应用程序中的“开始”类别图。

RibbonApp 示例应用程序的主页类别。

继承层次结构

CObject

CMFCRibbonCategory

要求

标头:afxribboncategory.h

CMFCRibbonCategory::AddHidden

将指定的功能区元素添加到“自定义”对话框上显示的功能区元素数组。

void AddHidden(CMFCRibbonBaseElement* pElem);

参数

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

注解

“自定义”对话框上的功能区元素是可添加到快速访问工具栏的命令。

CMFCRibbonCategory::AddPanel

为功能区类别创建功能区面板。

CMFCRibbonPanel* AddPanel(
    LPCTSTR lpszPanelName,
    HICON hIcon = 0,
    CRuntimeClass* pRTI = NULL);

参数

lpszPanelName
[in] 指向新功能区面板名称的指针。

hIcon
[in] 新功能区面板的默认图标的句柄。

pRTI
[in] 指向自定义功能区面板的运行时类信息的指针。

返回值

如果此方法成功,则为指向新功能区面板的指针;如果未创建面板,则为 NULL。

注解

如果要创建自定义功能区面板,必须在 pRTI 中指定其运行时类信息。 自定义功能区面板类必须派生自 CMFCRibbonPanel 类。

当没有足够的空间来显示功能区元素时,将显示功能区面板的默认图标。

示例

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

// Create "Favorites" panel:
strTemp.LoadString(IDS_RIBBON_FAVORITES);
// CMFCRibbonCategory* pCategoryCustom
CMFCRibbonPanel *pPanelFavorites = pCategoryCustom->AddPanel(strTemp,
                                                             m_PanelImages.ExtractIcon(15));

CMFCRibbonCategory::CMFCRibbonCategory

构造并初始化 CMFCRibbonCategory 对象。

CMFCRibbonCategory(
    CMFCRibbonBar* pParenrRibbonBar,
    LPCTSTR lpszName,
    UINT uiSmallImagesResID,
    UINT uiLargeImagesResID,
    CSize sizeSmallImage = CSize(16,
    16),
    CSize sizeLargeImage = CSize(32,
    32));

参数

pParenrRibbonBar
[in] 指向功能区类别的父功能区栏的指针。

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

uiSmallImagesResID
[in] 功能区类别中功能区元素使用的小型图像的图像列表的资源 ID。

uiLargeImagesResID
[in] 功能区类别中功能区元素使用的大型图像的图像列表的资源 ID。

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

sizeLargeImage
[in] 功能区类别中功能区元素的大型图像的默认大小。

CMFCRibbonCategory::CopyFrom

将指定的 CMFCRibbonCategory 的状态复制到当前的 CMFCRibbonCategory 对象。

virtual void CopyFrom(CMFCRibbonCategory& src);

参数

src
[in] 源 CMFCRibbonCategory 对象。

备注

CMFCRibbonCategory::FindByData

检索与指定数据关联的功能区元素。

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

参数

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

bVisibleOnly
[in] TRUE 表示在搜索中包括快速访问功能区元素;FALSE 表示在搜索中排除快速访问功能区元素。

返回值

如果此方法成功,则为指向功能区元素的指针;否则为 NULL。

备注

CMFCRibbonCategory::FindByID

检索与指定命令 ID 关联的功能区元素。

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

参数

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

bVisibleOnly
[in] TRUE 表示在搜索中包括快速访问功能区元素;FALSE 表示在搜索中排除快速访问功能区元素。

返回值

如果此方法成功,则为指向功能区元素的指针;否则为 NULL。

注解

CMFCRibbonCategory::FindPanelWithElem

检索包含指定功能区元素的功能区面板。

CMFCRibbonPanel* FindPanelWithElem(const CMFCRibbonBaseElement* pElement);

参数

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

返回值

如果此方法成功,则为指向功能区面板的指针;否则为 NULL。

备注

CMFCRibbonCategory::GetContextID

检索功能区类别的上下文 ID。

UINT GetContextID() const;

返回值

功能区类别的上下文 ID。

注解

如果功能区类别不是上下文功能区类别,则上下文 ID 为 0。

CMFCRibbonCategory::GetData

检索与功能区类别关联的用户定义的数据。

DWORD_PTR GetData() const;

返回值

与功能区类别关联的用户定义的数据。

CMFCRibbonCategory::GetDroppedDown

检索指向当前显示其弹出菜单的功能区元素的指针。

CMFCRibbonBaseElement* GetDroppedDown();

返回值

如果此方法成功,则为指向功能区元素的指针;否则为 NULL。

备注

CMFCRibbonCategory::GetElements

检索功能区类别中的所有功能区元素。

void GetElements(
    CArray <CMFCRibbonBaseElement*, CMFCRibbonBaseElement*>& arElements);

参数

arElements
[in, out] 对功能区元素的 CArray 的引用。

备注

设计用于快速访问工具栏的功能区元素包含在数组中。

CMFCRibbonCategory::GetElementsByID

检索与指定命令 ID 关联的所有功能区元素。

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

参数

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

arElements
[in, out] 对功能区元素的 CArray 的引用。

备注

设计用于快速访问工具栏的功能区元素包含在数组中。

CMFCRibbonCategory::GetFirstVisibleElement

检索属于功能区类别的第一个可见元素。

CMFCRibbonBaseElement* GetFirstVisibleElement() const;

返回值

指向第一个可见元素的指针;如果类别没有任何可见元素,则可能为 NULL。

备注

CMFCRibbonCategory::GetFocused

返回焦点元素。

CMFCRibbonBaseElement* GetFocused();

返回值

指向焦点元素的指针或 NULL。

注解

CMFCRibbonCategory::GetHighlighted

返回突出显示的元素。

CMFCRibbonBaseElement* GetHighlighted();

返回值

如果未突出显示任何元素,则为指向突出显示的元素的指针或 NULL。

备注

CMFCRibbonCategory::GetImageCount

检索功能区类别中包含的指定图像列表中的图像数。

int GetImageCount(BOOL bIsLargeImage) const;

参数

bIsLargeImage
[in] 对于大型图像列表中的图像数,为 TRUE;对于小型图像列表中的图像数,为 FALSE。

返回值

指定图像列表中的图像数。

备注

CMFCRibbonCategory::GetImageSize

检索功能区类别中包含的指定图像列表中的图像大小。

CSize GetImageSize(BOOL bIsLargeImage) const;

参数

bIsLargeImage
[in] 对于大型图像的大小,为 TRUE;对于小型图像的大小,为 FALSE。

返回值

指定的图像列表中的图像大小。

注解

检索到的大小包括全局图像比例系数。

CMFCRibbonCategory::GetItemIDsList

检索功能区类别中包含的功能区元素的命令 ID。

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

参数

lstItems
[out] 功能区类别中功能区元素的命令 ID 列表。

bHiddenOnly
[in] TRUE 表示排除功能区类别中功能区面板上显示的功能区元素;FALSE 表示包括功能区类别中的所有功能区元素。

备注

CMFCRibbonCategory::GetLargeImages

检索功能区类别中包含的大型图像的列表。

CMFCToolBarImages& GetLargeImages();

返回值

功能区类别中包含的大型图像的列表。

CMFCRibbonCategory::GetLastVisibleElement

检索属于功能区类别的最后一个可见元素。

CMFCRibbonBaseElement* GetLastVisibleElement() const;

返回值

指向最后一个可见元素的指针;如果类别没有任何可见元素,则可能为 NULL。

备注

CMFCRibbonCategory::GetMaxHeight

检索功能区类别中包含的功能区面板的最大高度。

int GetMaxHeight(CDC* pDC);

参数

pDC
[in] 指向功能区面板的设备上下文的指针。

返回值

功能区类别中包含的功能区面板的最大高度。

备注

检索到的值包括功能区面板的上边距和下边距的高度。

CMFCRibbonCategory::GetName

检索功能区类别的名称。

LPCTSTR GetName() const;

返回值

功能区类别的名称。

备注

CMFCRibbonCategory::GetPanel

返回指向位于指定索引处的功能区面板的指针。

CMFCRibbonPanel* GetPanel(int nIndex);

参数

nIndex
[in] 功能区面板的从零开始的索引。

返回值

指向位于指定索引处的功能区面板的指针。

备注

如果 nIndex 超出范围,则会引发异常。

CMFCRibbonCategory::GetPanelCount

返回功能区类别中的功能区面板数。

int GetPanelCount() const;

返回值

功能区类别中的功能区面板数。

CMFCRibbonCategory::GetPanelFromPoint

检索在指定的点位于功能区面板中的情况下,指向该功能区面板的指针。

CMFCRibbonPanel* GetPanelFromPoint(CPoint point) const;

参数

point
[in] 指针的 x 和 y 坐标,相对于窗口左上角。

返回值

如果此方法成功,则为指向功能区面板的指针;否则为 NULL。

注解

仅测试功能区类别中包含的功能区面板。

CMFCRibbonCategory::GetPanelIndex

检索指定的功能区面板的从零开始的索引。

int GetPanelIndex(const CMFCRibbonPanel* pPanel) const;

参数

pPanel
[in] 指向功能区面板的指针。

返回值

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

备注

仅搜索功能区类别中包含的功能区面板。

CMFCRibbonCategory::GetParentButton

检索功能区类别的父功能区元素。

CMFCRibbonBaseElement* GetParentButton() const;

返回值

返回指向父功能区元素的指针;如果没有父元素,则为 NULL。

备注

CMFCRibbonCategory::GetParentMenuBar

返回指向 CMFCRibbonCategory 对象的父菜单栏的指针。

CMFCRibbonPanelMenuBar* GetParentMenuBar() const;

返回值

返回 m_pParentMenuBar 受保护成员的内容。

备注

CMFCRibbonCategory::GetParentRibbonBar

检索功能区类别的父功能区栏。

CMFCRibbonBar* GetParentRibbonBar() const;

返回值

指向功能区类别的父功能区栏的指针。

备注

CMFCRibbonCategory::GetRect

检索功能区类别的显示矩形。

CRect GetRect() const;

返回值

功能区类别的显示矩形。

备注

功能区类别的显示矩形不包括类别选项卡。

CMFCRibbonCategory::GetSmallImages

检索功能区类别中包含的小型图像的列表。

CMFCToolBarImages& GetSmallImages();

返回值

功能区类别中包含的小型图像的列表。

CMFCRibbonCategory::GetTabColor

返回功能区类别选项卡的当前颜色。

AFX_RibbonCategoryColor GetTabColor() const;

返回值

功能区类别选项卡的当前颜色。

注解

返回值可以是以下枚举值之一:

  • AFX_CategoryColor_Red

  • AFX_CategoryColor_Orange

  • AFX_CategoryColor_Yellow

  • AFX_CategoryColor_Green

  • AFX_CategoryColor_Blue

  • AFX_CategoryColor_Indigo

  • AFX_CategoryColor_Violet

CMFCRibbonCategory::GetTabRect

检索功能区类别选项卡的显示矩形。

CRect GetTabRect() const;

返回值

功能区类别选项卡的显示矩形。

备注

CMFCRibbonCategory::GetTextTopLine

检索功能区类别中显示大型图像的功能区按钮上的文本的垂直位置。

int GetTextTopLine() const;

返回值

显示大型图像的功能区按钮上的文本的垂直位置(以像素为单位)。

注解

CMFCRibbonCategory::GetVisibleElements

检索属于功能区类别的所有可见元素。

void GetVisibleElements(
    CArray <CMFCRibbonBaseElement*,
    CMFCRibbonBaseElement*>& arElements);

参数

arElements
所有可见元素的数组。

备注

CMFCRibbonCategory::HighlightPanel

突出显示指定的功能区面板。

CMFCRibbonPanel* HighlightPanel(
    CMFCRibbonPanel* pHLPanel,
    CPoint point);

参数

pHLPanel
[in] 指向要突出显示的功能区面板的指针。

point
[in] 指针的 x 和 y 坐标,相对于窗口左上角。

返回值

指向之前突出显示的功能区面板的指针;如果在调用此方法时未突出显示功能区面板,则为 NULL。

备注

有关如何突出显示功能区面板的详细信息,请参阅 CMFCRibbonPanel::Highlight

CMFCRibbonCategory::HitTest

检索在指定的点位于功能区元素中的情况下,指向该功能区元素的指针。

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

参数

point
[in] 鼠标指针的 x 和 y 坐标,相对于窗口左上角。

bCheckPanelCaption
[in] TRUE 表示测试功能区面板描述文字;FALSE 表示排除功能区面板描述文字。

返回值

如果此方法成功,则为指向功能区元素的指针;否则为 NULL。

备注

仅测试功能区类别中包含的功能区元素。

CMFCRibbonCategory::HitTestEx

检索在指定的点位于功能区元素中的情况下,该功能区元素的从零开始的索引。

int HitTestEx(CPoint point) const;

参数

point
[in] 鼠标指针的 x 和 y 坐标,相对于窗口左上角。

返回值

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

注解

仅测试功能区类别中包含的功能区元素。

CMFCRibbonCategory::HitTestScrollButtons

如果某个点位于功能区类别的向左或向右滚动按钮内,则返回指向该按钮的指针。

CMFCRibbonBaseElement* HitTestScrollButtons(CPoint point) const;

参数

point
[in] 要测试的点。

返回值

如果 point 位于功能区类别的向左或向右滚动按钮的边框内,则返回指向该按钮的指针,否则返回 NULL。

备注

CMFCRibbonCategory::IsActive

指示功能区类别是否为功能区栏上的活动类别。

BOOL IsActive() const;

返回值

如果功能区类别为活动类别,则为 TRUE;否则为 FALSE。

注解

活动功能区类别显示其功能区面板。

CMFCRibbonCategory::IsVisible

指示功能区类别是否可见。

BOOL IsVisible() const;

返回值

如果功能区类别可见,则为 TRUE;否则为 FALSE。

备注

可见的功能区类别显示类别选项卡。

CMFCRibbonCategory::IsWindows7Look

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

BOOL IsWindows7Look() const;

返回值

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

备注

CMFCRibbonCategory::NotifyControlCommand

将 WM_NOTIFY 命令消息传递到 CMFCRibbonCategory 中的所有 CMFCRibbonPanel 元素,直到消息已经过处理。

virtual BOOL NotifyControlCommand(
    BOOL bAccelerator,
    int nNotifyCode,
    WPARAM wParam,
    LPARAM lParam);

参数

bAccelerator
[in] 如果此命令源自加速器,则为 TRUE;否则为 FALSE。

nNotifyCode
[in] 通知代码。

wParam
[in] 消息的 WPARAM 字段。

lParam
[in] 消息的 LPARAM 字段。

返回值

如果已处理消息,则返回 TRUE;否则返回 FALSE。

备注

CMFCRibbonCategory::OnCancelMode

CMFCRibbonCategory 的所有 CMFCRibbonPanel 元素中调用取消模式。

virtual void OnCancelMode();

备注

CMFCRibbonCategory::OnDraw

由框架调用以绘制功能区类别。

virtual void OnDraw(CDC* pDC);

参数

pDC
[in] 指向功能区类别的设备上下文的指针。

备注

CMFCRibbonCategory::OnDrawImage

由框架调用以绘制功能区类别上指定的图像。

virtual BOOL OnDrawImage(
    CDC* pDC,
    CRect rect,
    CMFCRibbonBaseElement* pElement,
    BOOL bIsLargeImage,
    BOOL nImageIndex,
    BOOL bCenter);

参数

pDC
[in] 指向图像的设备上下文的指针。

rect
[in] 图像的显示矩形。

pElement
[in] 指向包含图像的功能区元素的指针。

bIsLargeImage
[in] 如果图像尺寸较大,则为 TRUE;如果图像尺寸较小,则为 FALSE。

nImageIndex
[in] 功能区类别中包含的图像数组中图像的从零开始的索引。

bCenter
[in] TRUE 表示在显示矩形中使图像居中;FALSE 表示在显示矩形的左上角绘制图像。

返回值

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

注解

CMFCRibbonCategory::OnDrawMenuBorder

由框架调用以绘制弹出菜单的边框。

virtual void OnDrawMenuBorder(
    CDC* pDC,
    CMFCRibbonPanelMenuBar* pMenuBar);

参数

pDC
[in] 未使用此参数。

pMenuBar
[in] 未使用此参数。

备注

默认情况下,此方法不执行任何操作。 重写此方法以绘制弹出菜单的边框。

CMFCRibbonCategory::OnKey

当用户按键盘按钮时,由框架调用。

virtual BOOL OnKey(UINT nChar);

参数

nChar
用户按下的键的虚拟键代码。

注解

CMFCRibbonCategory::OnLButtonDown

当用户按鼠标左键时,由框架调用以检索指定点下的功能区元素。

virtual CMFCRibbonBaseElement* OnLButtonDown(CPoint point);

参数

point
[in] 鼠标指针的 x 和 y 坐标,相对于窗口左上角。

返回值

如果此方法成功,则为指向功能区元素的指针;否则为 NULL。

注解

CMFCRibbonCategory::OnLButtonUp

当用户释放鼠标左键,并且指针位于功能区类别上方时,由框架调用。

virtual void OnLButtonUp(CPoint point);

参数

point
[in] 指针的 x 和 y 坐标,相对于窗口左上角。

备注

CMFCRibbonCategory::OnMouseMove

当指针在功能区栏上移动以便更新功能区类别显示时,由框架调用。

virtual void OnMouseMove(CPoint point);

参数

point
[in] 指针的 x 和 y 坐标,相对于窗口左上角。

备注

CMFCRibbonCategory::OnRTLChanged

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

virtual void OnRTLChanged(BOOL bIsRTL);

参数

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

备注

此方法调整功能区类别中包含的所有功能区面板和功能区元素的布局。

CMFCRibbonCategory::OnScrollHorz

在水平方向上滚动功能区类别。

virtual BOOL OnScrollHorz(
    BOOL bScrollLeft,
    int nScrollOffset = 0);

参数

bScrollLeft
[in] TRUE 表示向左滚动;FALSE 表示向右滚动。

nScrollOffset
[in] 滚动距离(以像素为单位)。

返回值

如果功能区类别在水平方向上移动,则为 TRUE;否则为 FALSE。

注解

CMFCRibbonCategory::OnUpdateCmdUI

CMFCRibbonCategory 的每个 CMFCRibbonPanel 元素中调用 OnUpdateCmdUI 成员函数以启用或禁用其中的用户界面元素。

virtual void OnUpdateCmdUI(
    CMFCRibbonCmdUI* pCmdUI,
    CFrameWnd* pTarget,
    BOOL bDisableIfNoHndler);

参数

pCmdUI
[in] 指向 CMFCRibbonCmdUI 对象的指针,该对象指定要启用和禁用的用户界面元素。

pTarget
[in] 指向控制启用或禁用用户界面元素的窗口的指针。

bDisableIfNoHndler
[in] TRUE 表示在消息映射中未定义任何处理程序的情况下禁用用户界面项;否则为 FALSE。

注解

CMFCRibbonCategory::RecalcLayout

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

virtual void RecalcLayout(CDC* pDC);

参数

pDC
[in] 指向功能区类别的设备上下文的指针。

备注

CMFCRibbonCategory::RemovePanel

从功能区类别中移除功能区面板。

BOOL RemovePanel(
    int nIndex,
    BOOL bDelete = TRUE);

参数

nIndex
[in] 要移除的面板的索引号。 通过调用 CMFCRibbonCategory::GetPanelIndex 方法获取。

bDelete
[in] TRUE 表示从内存中删除面板对象;FALSE 表示移除面板对象而不删除它。

返回值

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

CMFCRibbonCategory::ReposPanels

调整功能区类别中包含的功能区面板上所有控件的布局。

virtual void ReposPanels(CDC* pDC);

参数

pDC
[in] 指向功能区类别中包含的功能区面板的设备上下文的指针。

注解

CMFCRibbonCategory::SetCollapseOrder

定义功能区类别的功能区面板的折叠顺序。

void SetCollapseOrder(const CArray<int,int>& arCollapseOrder);

参数

arCollapseOrder
[in] 指定折叠顺序。 该数组包含功能区面板的从零开始的索引。

备注

库定义折叠顺序。 但是,可以通过向类别提供指定折叠顺序的索引列表来自定义此行为。

当类别检测到它必须折叠功能区面板时,它会查找指定列表中的下一个元素。 如果列表为空或未指定足够的元素,则类别使用内部算法。

例如,类别有三个功能区面板,可以多次折叠,直到所有面板处于完全折叠状态。 可以设置以下折叠顺序:0、0、2、2。 在这种情况下,类别将折叠面板 0 两次,折叠面板 2 两次。 索引为 1 的面板保持不折叠的状态。

示例

以下示例演示了如何在 CMFCRibbonCategory 类中使用 SetCollapseOrder 方法。 该示例演示了如何为折叠顺序构造数组,以及如何将折叠顺序设置为功能区类别。

CArray<int, int> arCollapseOrder;
arCollapseOrder.Add(0);
arCollapseOrder.Add(1);
arCollapseOrder.Add(2);
// CMFCRibbonCategory* pCategoryHome
pCategoryHome->SetCollapseOrder(arCollapseOrder);

CMFCRibbonCategory::SetData

设置与功能区类别关联的用户定义的数据。

void SetData(DWORD_PTR dwData);

参数

dwData
[in] 用户定义的数据。

CMFCRibbonCategory::SetKeys

将快捷键提示分配给功能区类别。

void SetKeys(LPCTSTR lpszKeys);

参数

lpszKeys
[in] 快捷键提示文本。

注解

当用户按 Alt 键或 F10 键时,将显示快捷键提示。

CMFCRibbonCategory::SetName

将名称和快捷键提示分配给功能区类别。

void SetName(LPCTSTR lpszName);

参数

lpszName
[in] 功能区类别的名称和快捷键提示。

备注

若要设置功能区类别的快捷键提示,请将换行符转义序列后跟快捷键提示字符追加到 lpszName

CMFCRibbonCategory::SetTabColor

设置功能区类别的颜色。

void SetTabColor(AFX_RibbonCategoryColor color);

参数

color
[in] 指定功能区类别的新颜色。

备注

颜色可以是下列值之一:

  • AFX_CategoryColor_None

  • AFX_CategoryColor_Red

  • AFX_CategoryColor_Orange

  • AFX_CategoryColor_Yellow

  • AFX_CategoryColor_Green

  • AFX_CategoryColor_Blue

  • AFX_CategoryColor_Indigo

  • AFX_CategoryColor_Violet

另请参阅

层次结构图

CObject 类