CMFCRibbonButton 类
CMFCRibbonButton
类实现可放置在功能区栏元素(例如面板、快速访问工具栏和弹出菜单)上的按钮。
有关详细信息,请参阅所安装的 Visual Studio 的 C\atlmfc\src\mfc 文件夹中的源代码。
语法
class CMFCRibbonButton : public CMFCRibbonBaseElement
成员
公共构造函数
名称 | 描述 |
---|---|
CMFCRibbonButton::CMFCRibbonButton | 构造一个功能区按钮对象。 |
公共方法
受保护方法
名称 | 描述 |
---|---|
CMFCRibbonButton::OnClick | 当用户单击按钮时,由框架调用。 |
示例
下面的示例演示如何使用 CMFCRibbonButton
类中的各种方法。 该示例展示如何构造 CMFCRibbonButton
类的对象,将弹出菜单分配给功能区按钮,设置按钮的说明,从弹出菜单中删除一个菜单项,然后使弹出菜单与按钮的边缘右对齐。
strTemp.LoadString(IDS_RIBBON_STYLE);
// The first parameter is the command ID of the button.
// The third parameter is a zero-based index of the button's small image in the
// image list of the parent category.
// The fourth parameter is a zero-based index of the button's large image in the
// image list of the parent category.
CMFCRibbonButton *pVisualStyleButton = new CMFCRibbonButton(1, strTemp, -1, -1);
pVisualStyleButton->SetMenu(IDR_THEME_MENU, TRUE, TRUE);
strTemp.LoadString(IDS_RIBBON_STYLE_TIP);
pVisualStyleButton->SetToolTipText(strTemp);
strTemp.LoadString(IDS_RIBBON_STYLE_DESC);
pVisualStyleButton->SetDescription(strTemp);
pVisualStyleButton->RemoveSubItem(0);
pVisualStyleButton->SetRightAlignMenu(TRUE);
备注
若要在应用程序中使用功能区按钮,请构造按钮对象,并将其添加到相应的功能区面板。
CMFCRibbonPanel* pPanel = pCategory->AddPanel (
_T("Clipboard"), // Panel name
m_PanelIcons.ExtractIcon (0)); // Panel icon
// Create the first button ("Paste"):
CMFCRibbonButton* pPasteButton =
new CMFCRibbonButton (ID_EDIT_PASTE, _T("Paste"), -1, 0);
// The third parameter (-1) disables small images for button.
// This button is always displayed with a large image
// Associate a pop-up menu with the "Paste" button:
pPasteButton->SetMenu (IDR_CONTEXT_MENU);
// Add buttons to the panel. These buttons have only small images.
pPanel->Add (new CMFCRibbonButton (ID_EDIT_CUT, _T("Cut"), 1));
pPanel->Add (new CMFCRibbonButton (ID_EDIT_COPY, _T("Copy"), 2));
pPanel->Add (new CMFCRibbonButton (ID_EDIT_PAINT, _T("Paint"), 9));
继承层次结构
要求
标头: afxribbonbutton.h
CMFCRibbonButton::AddSubItem
将菜单项添加到与按钮相关联的弹出菜单。
void AddSubItem(
CMFCRibbonBaseElement* pSubItem,
int nIndex=-1);
参数
pSubItem
[in] 指定指向要添加的新元素的指针。
nIndex
[in] 指定将元素添加到按钮菜单项数组的索引;如果为 -1,则在菜单项数组的末尾添加元素。
CMFCRibbonButton::CanBeStretched
virtual BOOL CanBeStretched();
返回值
注解
CMFCRibbonButton::CleanUpSizes
virtual void CleanUpSizes();
备注
CMFCRibbonButton::ClosePopupMenu
virtual void ClosePopupMenu();
注解
CMFCRibbonButton::CMFCRibbonButton
构造一个功能区按钮对象。
CMFCRibbonButton(
UINT nID,
LPCTSTR lpszText,
int nSmallImageIndex=-1,
int nLargeImageIndex=-1,
BOOL bAlwaysShowDescription=FALSE);
CMFCRibbonButton(
UINT nID,
LPCTSTR lpszText,
HICON hIcon,
BOOL bAlwaysShowDescription=FALSE,
HICON hIconSmall=NULL,
BOOL bAutoDestroyIcon=FALSE,
BOOL bAlphaBlendIcon=FALSE);
参数
nID
[in] 指定按钮的命令 ID。
lpszText
[in] 指定按钮的文本标签。
nSmallImageIndex
[in] 指定父类别图像列表中按钮的小图像的从零开始的索引。
nLargeImageIndex
[in] 指定父类别图像列表中按钮的大图像的从零开始的索引。
hIcon
[in] 指定应用程序用作按钮图像的图标的句柄。
示例
以下示例演示如何构造 CMFCRibbonButton
对象。
strTemp.LoadString(IDS_RIBBON_CUT);
CMFCRibbonButton *butn = new CMFCRibbonButton(ID_EDIT_CUT, strTemp, 1);
butn->SetKeys(_T("k"));
CMFCRibbonButton::DrawBottomText
CSize DrawBottomText(
CDC* pDC,
BOOL bCalcOnly);
参数
[in] pDC
[in] bCalcOnly
返回值
注解
CMFCRibbonButton::DrawImage
virtual void DrawImage(
CDC* pDC,
RibbonImageType type,
CRect rectImage);
参数
[in] pDC
[in] type
[in] rectImage
备注
CMFCRibbonButton::DrawRibbonText
virtual int DrawRibbonText(
CDC* pDC,
const CString& strText,
CRect rectText,
UINT uiDTFlags,
COLORREF clrText = (COLORREF)-1);
参数
[in] pDC
[in] strText
[in] rectText
[in] uiDTFlags
[in] clrText
返回值
注解
CMFCRibbonButton::FindSubItemIndexByID
返回与指定的命令 ID 相关联的弹出菜单项的索引。
int FindSubItemIndexByID(UINT uiID) const;
参数
uiID
[in] 指定弹出菜单项的命令 ID。
返回值
与 uiID 关联的子项的从零开始的索引。 如果没有此类子项,则为 -1。
CMFCRibbonButton::GetCommandRect
CRect GetCommandRect() const;
返回值
注解
CMFCRibbonButton::GetCompactSize
virtual CSize GetCompactSize(CDC* pDC);
参数
[in] pDC
返回值
备注
CMFCRibbonButton::GetIcon
HICON GetIcon(BOOL bLargeIcon = TRUE) const;
参数
[in] bLargeIcon
返回值
备注
CMFCRibbonButton::GetImageIndex
返回与按钮相关联的图像的索引。
int GetImageIndex(BOOL bLargeImage) const;
参数
bLargeImage
[in] 如果为 TRUE,则返回包含大图像的图像列表中的图像索引;否则返回包含小图像的图像列表中的图像索引。
返回值
相关图像列表中按钮图像的索引。
CMFCRibbonButton::GetImageSize
virtual CSize GetImageSize(RibbonImageType type) const;
参数
[in] type
返回值
备注
CMFCRibbonButton::GetIntermediateSize
virtual CSize GetIntermediateSize(CDC* pDC);
参数
[in] pDC
返回值
注解
CMFCRibbonButton::GetMenu
将一个句柄返回给一个分配给功能区按钮的 Windows 菜单。
HMENU GetMenu() const;
返回值
分配给按钮的 Windows 菜单的句柄;如果没有分配菜单,则为 NULL。
CMFCRibbonButton::GetMenuRect
CRect GetMenuRect() const;
返回值
备注
CMFCRibbonButton::GetRegularSize
virtual CSize GetRegularSize(CDC* pDC);
参数
[in] pDC
返回值
注解
CMFCRibbonButton::GetSubItems
const CArray<CMFCRibbonBaseElement*, CMFCRibbonBaseElement*>& GetSubItems() const;
返回值
备注
CMFCRibbonButton::GetTextRowHeight
int GetTextRowHeight() const;
返回值
备注
CMFCRibbonButton::GetToolTipText
virtual CString GetToolTipText() const;
返回值
备注
CMFCRibbonButton::HasCompactMode
virtual BOOL HasCompactMode() const;
返回值
备注
CMFCRibbonButton::HasIntermediateMode
virtual BOOL HasIntermediateMode() const;
返回值
备注
CMFCRibbonButton::HasLargeMode
virtual BOOL HasLargeMode() const;
返回值
注解
CMFCRibbonButton::HasMenu
virtual BOOL HasMenu() const;
返回值
注解
CMFCRibbonButton::IsAlwaysDrawBorder
virtual BOOL IsAlwaysDrawBorder() const;
返回值
备注
CMFCRibbonButton::IsAlwaysLargeImage
virtual BOOL IsAlwaysLargeImage() const;
返回值
注解
CMFCRibbonButton::IsApplicationButton
virtual BOOL IsApplicationButton() const;
返回值
备注
CMFCRibbonButton::IsCommandAreaHighlighted
virtual BOOL IsCommandAreaHighlighted() const;
返回值
注解
CMFCRibbonButton::IsDefaultCommand
指定是否启用功能区按钮的默认命令。
BOOL IsDefaultCommand() const;
返回值
如果已启用功能区按钮的默认命令,则为 TRUE;否则为 FALSE。
CMFCRibbonButton::IsDefaultPanelButton
virtual BOOL IsDefaultPanelButton() const;
返回值
备注
CMFCRibbonButton::IsDrawTooltipImage
virtual BOOL IsDrawTooltipImage() const;
返回值
备注
CMFCRibbonButton::IsLargeImage
BOOL IsLargeImage() const;
返回值
备注
CMFCRibbonButton::IsMenuAreaHighlighted
virtual BOOL IsMenuAreaHighlighted() const;
返回值
备注
CMFCRibbonButton::IsMenuOnBottom
BOOL IsMenuOnBottom() const;
返回值
注解
CMFCRibbonButton::IsPopupDefaultMenuLook
virtual BOOL IsPopupDefaultMenuLook() const;
返回值
备注
CMFCRibbonButton::IsRightAlignMenu
指定菜单是否右对齐。
BOOL IsRightAlignMenu() const;
返回值
如果菜单右对齐,则为 TRUE;否则为 FALSE。
CMFCRibbonButton::IsSingleLineText
BOOL IsSingleLineText() const;
返回值
备注
CMFCRibbonButton::OnCalcTextSize
virtual void OnCalcTextSize(CDC* pDC);
参数
[in] pDC
备注
CMFCRibbonButton::OnClick
当用户单击按钮时,由框架调用。
virtual void OnClick(CPoint point);
参数
point
[in] 指定鼠标单击的位置。
注解
如果要处理此事件,请在派生类中重写此方法。
CMFCRibbonButton::OnDraw
virtual void OnDraw(CDC* pDC);
参数
[in] pDC
备注
CMFCRibbonButton::OnDrawBorder
virtual void OnDrawBorder(CDC* pDC);
参数
[in] pDC
备注
CMFCRibbonButton::OnFillBackground
virtual COLORREF OnFillBackground(CDC* pDC);
参数
[in] pDC
返回值
备注
CMFCRibbonButton::RemoveAllSubItems
从弹出菜单中删除所有菜单项。
void RemoveAllSubItems();
CMFCRibbonButton::RemoveSubItem
从弹出菜单中删除一个菜单项。
BOOL RemoveSubItem(int nIndex);
参数
nIndex
[in] 指定要删除的菜单项的从零开始的索引。
返回值
如果已成功删除指定的项,则为 TRUE;否则,如果 nIndex 为负数或超过弹出菜单中的菜单项数,则为 FALSE。
CMFCRibbonButton::SetACCData
设置功能区按钮的辅助功能数据。
virtual BOOL SetACCData(
CWnd* pParent,
CAccessibilityData& data);
参数
pParent
功能区元素的父窗口。
data
功能区元素的可访问性数据。
返回值
如果成功,则返回 TRUE;否则返回 FALSE。
备注
CMFCRibbonButton::SetAlwaysLargeImage
指定当用户折叠按钮时,按钮显示大图像还是小图像。
void SetAlwaysLargeImage(BOOL bSet=TRUE);
参数
bSet
[in] 如果为 TRUE,则按钮显示大图像。 否则,按钮显示小图像。
CMFCRibbonButton::SetDefaultCommand
启用功能区按钮的默认命令。
void SetDefaultCommand(BOOL bSet=TRUE);
参数
bSet
[in] 如果为 TRUE,则按钮可以执行其默认命令。 如果为 FALSE,则按钮无法执行其默认命令。
备注
bSet 仅在按钮具有菜单时才相关。 如果 bSet 为 TRUE,则按钮可以执行其默认命令,并且仅当用户单击按钮右边缘的箭头时,才会显示分配的弹出菜单。 否则,该按钮无法执行其默认命令,并且无论用户单击按钮的哪个区域,都会显示弹出菜单。
CMFCRibbonButton::SetDescription
virtual void SetDescription(LPCTSTR lpszText);
参数
[in] lpszText
备注
CMFCRibbonButton::SetImageIndex
将索引分配给按钮的图像。
void SetImageIndex(
int nIndex,
BOOL bLargeImage);
参数
nIndex
[in] 指定图像索引。
bLargeImage
[in] 如果为 TRUE,则指定的索引引用大图像列表。 否则,索引引用小图像列表。
CMFCRibbonButton::SetMenu
将弹出菜单分配给功能区按钮。
void SetMenu(
HMENU hMenu,
BOOL bIsDefaultCommand=FALSE,
BOOL bRightAlign=FALSE);
void SetMenu(
UINT uiMenuResID,
BOOL bIsDefaultCommand=FALSE,
BOOL bRightAlign=FALSE);
参数
hMenu
Windows 菜单的句柄。
bIsDefaultCommand
如果为 TRUE,则按钮可以执行其默认命令;否则,按钮将显示一个弹出菜单。
bRightAlign
如果为 TRUE,则菜单右对齐。 否则,菜单左对齐。
uiMenuResID
菜单资源 ID。
备注
当应用程序将菜单分配给按钮时,按钮的右侧会显示一个箭头。 如果 bIsDefaultCommand 为 TRUE,则仅在用户单击箭头时,才会显示菜单。 如果用户单击该按钮,则会执行其默认命令。 如果 bIsDefaultCommand 为 FALSE,则单击按钮上的任意位置均可显示菜单。
CMFCRibbonButton::SetParentCategory
virtual void SetParentCategory(CMFCRibbonCategory* pParent);
参数
[in] pParent
备注
CMFCRibbonButton::SetRightAlignMenu
将弹出菜单与按钮边缘对齐。
void SetRightAlignMenu(BOOL bSet=TRUE);
参数
bSet
[in] 如果为 TRUE,则菜单右对齐。 否则,菜单左对齐
CMFCRibbonButton::SetText
virtual void SetText(LPCTSTR lpszText);
参数
[in] lpszText