CMFCRibbonGallery 类

实现 Office 2007 样式功能区库。 有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。

语法

class CMFCRibbonGallery : public CMFCRibbonButton

成员

公共构造函数

名称 描述
CMFCRibbonGallery::CMFCRibbonGallery 构造并初始化一个 CMFCRibbonGallery 对象。

公共方法

名称 描述
CMFCRibbonGallery::AddGroup 向库添加新组。
CMFCRibbonGallery::AddSubItem 向下拉菜单添加新菜单项。
CMFCRibbonGallery::Clear 清除库的内容。
CMFCRibbonGallery::EnableMenuResize 启用或禁用菜单面板的大小调整。
CMFCRibbonGallery::EnableMenuSideBar 启用或禁用弹出窗口菜单左侧的侧栏。
CMFCRibbonGallery::GetCompactSize (重写 CMFCRibbonButton::GetCompactSize。)
CMFCRibbonGallery::GetDroppedDown (重写 CMFCRibbonBaseElement::GetRegularSize。)
CMFCRibbonGallery::GetGroupName 返回位于指定索引处的组的名称。
CMFCRibbonGallery::GetGroupOffset
CMFCRibbonGallery::GetIconsInRow 返回功能区库行中的项数。
CMFCRibbonGallery::GetItemToolTip 返回与库中的项关联的工具提示文本。
CMFCRibbonGallery::GetLastSelectedItem 返回用户选择的库中最后一项的索引。
CMFCRibbonGallery::GetPaletteID 返回当前库的命令 ID。
CMFCRibbonGallery::GetRegularSize (重写 CMFCRibbonButton::GetRegularSize。)
CMFCRibbonGallery::GetSelectedItem
CMFCRibbonGallery::HasMenu (重写 CMFCRibbonButton::HasMenu。)
CMFCRibbonGallery::IsButtonMode 指定库是否包含在库按钮中。
CMFCRibbonGallery::IsMenuResizeEnabled 指定是启用还是禁用菜单大小调整。
CMFCRibbonGallery::IsMenuResizeVertical
CMFCRibbonGallery::IsMenuSideBar 指定是启用还是禁用侧边栏。
CMFCRibbonGallery::OnAfterChangeRect (替代 CMFCRibbonButton::OnAfterChangeRect。)
CMFCRibbonGallery::OnDraw (重写 CMFCRibbonButton::OnDraw。)
CMFCRibbonGallery::OnEnable (替代 CMFCRibbonBaseElement::OnEnable。)
CMFCRibbonGallery::OnRTLChanged (重写 CMFCRibbonBaseElement::OnDraw。)
CMFCRibbonGallery::RedrawIcons 重绘库。
CMFCRibbonGallery::RemoveItemToolTips 从库中的所有项中删除工具提示。
CMFCRibbonGallery::SelectItem
CMFCRibbonGallery::SetACCData (替代 CMFCRibbonButton::SetACCData。)
CMFCRibbonGallery::SetButtonMode 指定是将功能区库显示为下拉按钮还是直接在功能区上显示为调色板。
CMFCRibbonGallery::SetGroupName 设置组的名称。
CMFCRibbonGallery::SetIconsInRow 定义库中每行的项数。
CMFCRibbonGallery::SetItemToolTip 设置库中项的工具提示文本。
CMFCRibbonGallery::SetPalette 将调色板附加到功能区库。
CMFCRibbonGallery::SetPaletteID 定义在选择库项时在 WM_COMMAND 消息中发送的命令 ID。

受保护方法

名称 描述
CMFCRibbonGallery::OnDrawPaletteIcon 在绘制库图标时由框架调用。

备注

库按钮的行为与常规菜单按钮类似,只是会在用户打开库时显示库。 选择库中的项时,框架会将 WM_COMMAND 消息与按钮的命令 ID 一起发送。 处理该消息时,应调用 CMFCRibbonGallery::GetLastSelectedItem 以确定从库中选择了哪个项。

示例

下面的示例演示如何使用 CMFCRibbonGallery 类中的各种方法来配置 CMFCRibbonGallery 对象。 该示例演示如何指定库中每行的项目数、启用菜单面板的大小、启用弹出菜单左侧的侧边栏,以及如何直接在功能区栏上将功能区库显示为调色板。 此代码片段属于 Draw Client 示例

CMFCRibbonGallery *pBtnStyles = new CMFCRibbonGallery(ID_OBJECT_STYLES, _T("Styles\nk"), 0, 0, IDB_STYLES, 40);
pBtnStyles->SetIconsInRow(7);
pBtnStyles->EnableMenuResize(TRUE, TRUE);
pBtnStyles->EnableMenuSideBar();
pBtnStyles->SetButtonMode(false);
pBtnStyles->RedrawIcons();

继承层次结构

CObject
CMFCRibbonBaseElement
 └ CMFCRibbonButton
  └ CMFCRibbonGallery

要求

标头:afxribbonpalettegallery.h

CMFCRibbonGallery::AddGroup

向库添加新组。

void AddGroup(
    LPCTSTR lpszGroupName,
    UINT uiImagesPaletteResID,
    int cxPaletteImage);

void AddGroup(
    LPCTSTR lpszGroupName,
    CMFCToolBarImages& imagesGroup);

void AddGroup(
    LPCTSTR lpszGroupName,
    int nIconsNum);

参数

lpszGroupName
[in] 指定组的名称。

uiImagesPaletteResID
[in] 指定包含组图像的图像列表的资源 ID。

cxPaletteImage
[in] 指定图像的宽度(以像素为单位)。

imagesGroup
[in] 对包含组图像的图像列表的引用。

nIconsNum
[in] 指定组中图标的数量。 应仅为自定义(所有者绘制的)组指定此参数。

备注

通过调用此方法,可以将功能区库上的项划分为多个组。 每个组都可以有一个标题。

CMFCRibbonGallery::AddSubItem

向下拉菜单添加新菜单项。

void AddSubItem(
    CMFCRibbonBaseElement* pSubItem,
    int nIndex=-1,
    BOOL bOnTop=FALSE);

参数

pSubItem
[in] 指向要添加到菜单中的项的指针。

nIndex
[in] 指定要在其中插入项的位置的从零开始的索引。

bOnTop
[in] 若要指定应在功能区库之前插入该项,则为 TRUE;否则为 FALSE。

备注

可以通过调用此方法将弹出库与弹出菜单项组合在一起。 菜单项可以放置在库之前或之后。

若要在库之前插入项,请将 bOnTop 设置为 TRUE。 将 bOnTop 设置为 FALSE 以在库下方插入项

注意

参数 nIndex 指定库顶部和库底部的插入索引。 例如,如果需要在库前一个位置插入项目,请将 nIndex 设置为 1,将 bOnTop 设置为 TRUE。 同样,如果需要在库下方一个位置插入项目,请将 nIndex 设置为 1,将 bOnTop 设置为 FALSE

CMFCRibbonGallery::Clear

清除库的内容。

virtual void Clear();

备注

调用此方法以从功能区库中删除所有内容。 在将新的功能区库或组集附加到功能区库之前,必须完成此操作。

CMFCRibbonGallery::CMFCRibbonGallery

构造并初始化 CMFCRibbonGallery 对象。

CMFCRibbonGallery (
    UINT nID,
    LPCTSTR lpszText,
    int nSmallImageIndex,
    int nLargeImageIndex,
    CMFCToolBarImages& imagesPalette);

CMFCRibbonGallery (
    UINT nID,
    LPCTSTR lpszText,
    int nSmallImageIndex,
    int nLargeImageIndex,
    UINT uiImagesPaletteResID=0,
    int cxPaletteImage=0);

CMFCRibbonGallery (
    UINT nID,
    LPCTSTR lpszText,
    int nSmallImageIndex,
    int nLargeImageIndex,
    CSize sizeIcon,
    int nIconsNum,
    BOOL bDefaultButtonStyle=TRUE);

参数

nID
指定用户单击按钮时要执行的命令的命令 ID。

lpszText
指定要在按钮上显示的文本。

nSmallImageIndex
要显示在按钮上的小型图像的从零开始的索引。

nLargeImageIndex
要显示在按钮上的大型图像的从零开始的索引。

imagesPalette
CMFCToolBarImages 的引用包含要在库中显示的图像的对象。

uiImagesPaletteResID
要在库上显示的图像列表的资源 ID。

cxPaletteImage
指定库上图像的宽度(以像素为单位)。

sizeIcon
指定库图像的大小(以像素为单位)。

nIconsNum
指定库中图标的数量。

bDefaultButtonStyle
指定是使用默认还是所有者绘制的按钮样式。

注解

CMFCRibbonGallery::EnableMenuResize

启用或禁用菜单面板的大小调整。

void EnableMenuResize(
    BOOL bEnable = TRUE,
    BOOL bVertcalOnly = FALSE);

参数

bEnable
[in] 如果为 TRUE 则启用菜单大小调整;否则为 FALSE。

bVertcalOnly
[in] 如果为 TRUE,则指定只能垂直调整库的大小;如果为 FALSE,则指定可以垂直和水平调整库的大小。

备注

使用此方法可以启用或禁用功能区库的大小调整。 启用调整大小时,功能区库将显示用户可以使用其调整大小的控制手柄。

CMFCRibbonGallery::EnableMenuSideBar

启用或禁用弹出窗口菜单左侧的侧栏。

void EnablMenuSideBar(BOOL bEnable=TRUE);

参数

bEnable
[in] 如果为 TRUE,则指定启用侧栏;否则为 FALSE。

注解

调用此方法以启用或禁用菜单左侧的 Office XP 样式侧边栏。

CMFCRibbonGallery::GetCompactSize

virtual CSize GetCompactSize(CDC* pDC);

参数

[in] pDC

返回值

备注

CMFCRibbonGallery::GetDroppedDown

virtual CMFCRibbonBaseElement* GetDroppedDown();

返回值

备注

CMFCRibbonGallery::GetGroupName

返回位于指定索引处的组的名称。

LPCTSTR GetGroupName(int nGroupIndex) const;

参数

nGroupIndex
[in] 指定要检索其名称的组的从零开始的索引。

返回值

位于指定索引处的组的名称。 传递无效索引将导致断言失败。

备注

CMFCRibbonGallery::GetGroupOffset

virtual int GetGroupOffset() const;

返回值

备注

CMFCRibbonGallery::GetIconsInRow

返回功能区库行中的项数。

int GetIconsInRow() const;

返回值

行中的项数。

备注

CMFCRibbonGallery::GetItemToolTip

返回与库中的项关联的工具提示文本。

LPCTSTR GetItemToolTip(int nItemIndex) const;

参数

nItemIndex
[in] 指定要为其检索工具提示文本的项的从零开始的索引。

返回值

指向分配给功能区库中的项的工具提示字符串的指针。 如果没有为该项目分配工具提示,则它可以为 NULL。

备注

CMFCRibbonGallery::GetLastSelectedItem

返回用户选择的功能区库中最后一项的索引。

static int GetLastSelectedItem(UINT uiCmdID);

参数

uiCmdID
[in] 指定打开功能区库的菜单项的命令 ID。

返回值

当用户选择功能区库中的任意项时,库将发送 WM_COMMAND 消息以及打开功能区库的菜单按钮的命令 ID。

注解

CMFCRibbonGallery::GetPaletteID

返回当前面板的命令 ID。

int GetPaletteID() const;

返回值

当前所选面板的命令 ID。

注解

CMFCRibbonGallery::GetRegularSize

virtual CSize GetRegularSize(CDC* pDC);

参数

[in] pDC

返回值

备注

CMFCRibbonGallery::GetSelectedItem

int GetSelectedItem() const;

返回值

备注

CMFCRibbonGallery::HasMenu

virtual BOOL HasMenu() const;

返回值

注解

CMFCRibbonGallery::IsButtonMode

指定面板是否包含在库按钮中。

BOOL IsButtonMode() const;

返回值

如果面板显示为下拉菜单按钮,则为 TRUE;如果面板直接显示在功能区上,则为 FALSE。

备注

CMFCRibbonGallery::IsMenuResizeEnabled

指定是否启用菜单大小调整。

BOOL IsMenuResizeEnabled() const;

返回值

如果已启用菜单大小调整,则为 TRUE;否则为 FALSE。

备注

CMFCRibbonGallery::IsMenuResizeVertical

BOOL IsMenuResizeVertical() const;

返回值

备注

CMFCRibbonGallery::IsMenuSideBar

指定是启用还是禁用侧边栏。

BOOL IsMenuSideBar() const;

返回值

如果 Office XP 样式的侧边栏绘制在弹出菜单的左侧,则为 TRUE;否则为 FALSE。

注解

CMFCRibbonGallery::OnAfterChangeRect

virtual void OnAfterChangeRect(CDC* pDC);

参数

[in] pDC

备注

CMFCRibbonGallery::OnDraw

virtual void OnDraw(CDC* pDC);

参数

[in] pDC

备注

CMFCRibbonGallery::OnDrawPaletteIcon

在绘制库图标时由框架调用。

virtual void OnDrawPaletteIcon(
    CDC* pDC,
    CRect rectIcon,
    int nIconIndex,
    CMFCRibbonGalleryIcon* pIcon,
    COLORREF clrText);

参数

pDC
[in] 指向用于绘图的设备上下文的指针。

rectIcon
[in] 指定要绘制的图标的边框。

nIconIndex
[in] 指定要绘制的图标的库图标的图像列表中从零开始的索引。

pIcon
[in] 指向正在绘制的图标的指针。

clrText
[in] 指定要绘制的项的文本的颜色。

注解

可以在派生类中重写此方法以自定义功能区库的外观。

CMFCRibbonGallery::OnEnable

virtual void OnEnable(BOOL bEnable);

参数

[in] bEnable

备注

CMFCRibbonGallery::OnRTLChanged

virtual void OnRTLChanged(BOOL bIsRTL);

参数

[in] bIsRTL

注解

CMFCRibbonGallery::RedrawIcons

重绘库。

void RedrawIcons();

备注

调用此函数以重绘库。 如果在运行时更改了库的内容,则必须调用此方法。

CMFCRibbonGallery::RemoveItemToolTips

从库中的所有项中删除工具提示。

void RemoveItemToolTips();

备注

CMFCRibbonGallery::SelectItem

void SelectItem(int nItemIndex);

参数

[in] nItemIndex

备注

CMFCRibbonGallery::SetACCData

使用功能区库中的可访问性数据填充指定的 CAccessibilityData 对象。

virtual BOOL SetACCData(
    CWnd* pParent,
    CAccessibilityData& data);

参数

pParent
[in] 功能区库窗口中的父窗口。

data
[out] 从功能区库接收可访问性数据的 CAccessibilityData 对象。

返回值

注解

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

CMFCRibbonGallery::SetButtonMode

确定是将功能区库显示为下拉按钮还是直接在功能区上显示为调色板。

void SetButtonMode(BOOL bSet=TRUE);

参数

bSet
[in] 如果为 TRUE,则将功能区库显示为下拉菜单按钮;如果为 FALSE,则可直接在功能区上显示功能区库的内容。

备注

CMFCRibbonGallery::SetGroupName

设置组的名称。

void SetGroupName(
    int nGroupIndex,
    LPCTSTR lpszGroupName);

参数

nGroupIndex
[in] 指定要更改其名称的组的从零开始的索引。

lpszGroupName
[in] 指定组的新名称。

备注

必须使用 CMFCRibbonGallery::AddGroup 方法添加正在更改名称的组。

CMFCRibbonGallery::SetIconsInRow

指定库中每行的项数。

void SetIconsInRow(int nIconsInRow);

参数

nIconsInRow
[in] 指定要在库的每一行中显示的项数。

备注

使用此方法指定功能区库的宽度。

CMFCRibbonGallery::SetItemToolTip

设置库中项的工具提示文本。

void SetItemToolTip(
    int nItemIndex,
    LPCTSTR lpszToolTip);

参数

nItemIndex
[in] 要与工具提示关联的面板项的从零开始的索引。

lpszToolTip
[in] 要在工具提示上显示的文本。

备注

CMFCRibbonGallery::SetPalette

将调色板附加到功能区库。

void SetPalette(CMFCToolBarImages& imagesPalette);

void SetPalette(
    UINT uiImagesPaletteResID,
    int cxPaletteImage);

参数

imagesPalette
[in] 指定包含要在库上显示的图标的图像列表。

uiImagesPaletteResID
[in] 指定包含要在库上显示的图标的图像列表的资源 ID。

cxPaletteImage
[in] 指定库上图像的宽度(以像素为单位)。

备注

CMFCRibbonGallery::SetPaletteID

定义当用户选择库项时在 WM_COMMAND 消息中发送的命令 ID。

void SetPaletteID(UINT nID);

参数

nID
[in] 指定当用户选择库项时在 WM_COMMAND 消息中发送的命令 ID。

备注

若要确定用户从库中选择的特定项,请调用 CMFCRibbonGallery::GetLastSelectedItem 静态方法。

另请参阅

层次结构图

CMFCRibbonButton 类
CMFCRibbonGalleryMenuButton 类