CMFCRibbonGallery 类
实现 Office 2007 样式功能区库。 有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。
语法
class CMFCRibbonGallery : public CMFCRibbonButton
成员
公共构造函数
名称 | 描述 |
---|---|
CMFCRibbonGallery::CMFCRibbonGallery | 构造并初始化一个 CMFCRibbonGallery 对象。 |
公共方法
受保护方法
名称 | 描述 |
---|---|
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 静态方法。