共用方式為


CMFCRibbonButton 類別

CMFCRibbonButton 類別實作可以放置在功能區列項目 (例如面板、快速存取工具列和快顯功能表) 上的按鈕。

如需詳細資訊,請參閱 Visual Studio 安裝的 VC\atlmfc\src\mfc 資料夾中的原始程式碼

語法

class CMFCRibbonButton : public CMFCRibbonBaseElement

成員

公用建構函式

名稱 描述
CMFCRibbonButton::CMFCRibbonButton 建構功能區按鈕物件。

公用方法

名稱 描述
CMFCRibbonButton::AddSubItem 將功能表項目加入至與按鈕相關聯的快顯功能表。
CMFCRibbonButton::CanBeStretched (覆寫 CMFCRibbonBaseElement::CanBeStretched .)
CMFCRibbonButton::CleanUpSizes (覆寫 CMFCRibbonBaseElement::CleanUpSizes .)
CMFCRibbonButton::ClosePopupMenu (覆寫 CMFCRibbonBaseElement::ClosePopupMenu .)
CMFCRibbonButton::D rawBottomText
CMFCRibbonButton::D rawImage (覆寫 CMFCRibbonBaseElement::D rawImage .)
CMFCRibbonButton::D rawRibbonText
CMFCRibbonButton::FindSubItemIndexByID 傳回與指定之命令識別碼相關聯的快顯功能表項目索引。
CMFCRibbonButton::GetCommandRect
CMFCRibbonButton::GetCompactSize 傳回功能區項目的壓縮大小。 (覆寫 CMFCRibbonBaseElement::GetCompactSize .)
CMFCRibbonButton::GetIcon
CMFCRibbonButton::GetImageIndex 傳回與按鈕相關聯的映像索引。
CMFCRibbonButton::GetImageSize 傳回功能區項目的影像大小。 (覆寫 CMFCRibbonBaseElement::GetImageSize .)
CMFCRibbonButton::GetIntermediateSize 傳回中繼狀態之功能區項目的大小。 (覆寫 CMFCRibbonBaseElement::GetIntermediateSize .)
CMFCRibbonButton::GetMenu 傳回已指派給功能區按鈕之 Windows 功能表的控制代碼。
CMFCRibbonButton::GetMenuRect
CMFCRibbonButton::GetRegularSize 傳回功能區項目的一般大小。 (覆寫 CMFCRibbonBaseElement::GetRegularSize .)
CMFCRibbonButton::GetSubItems
CMFCRibbonButton::GetTextRowHeight
CMFCRibbonButton::GetToolTipText 傳回功能區項目的工具提示文字。 (覆寫 CMFCRibbonBaseElement::GetToolTipText .)
CMFCRibbonButton::HasCompactMode 指定功能區項目是否有精簡模式。 (覆寫 CMFCRibbonBaseElement::HasCompactMode .)
CMFCRibbonButton::HasIntermediateMode 指定功能區項目是否有中繼模式。 (覆寫 CMFCRibbonBaseElement::HasIntermediateMode .)
CMFCRibbonButton::HasLargeMode 指定功能區項目是否有大型模式。 (覆寫 CMFCRibbonBaseElement::HasLargeMode .)
CMFCRibbonButton::HasMenu (覆寫 CMFCRibbonBaseElement::HasMenu .)
CMFCRibbonButton::IsAlwaysDrawBorder
CMFCRibbonButton::IsAlwaysLargeImage (覆寫 CMFCRibbonBaseElement::IsAlwaysLargeImage .)
CMFCRibbonButton::IsApplicationButton
CMFCRibbonButton::IsCommandAreaHighlighted
CMFCRibbonButton::IsDefaultCommand 判定您是否已啟用功能區按鈕的預設命令。
CMFCRibbonButton::IsDefaultPanelButton
CMFCRibbonButton::IsDrawTooltipImage
CMFCRibbonButton::IsLargeImage
CMFCRibbonButton::IsMenuAreaHighlighted
CMFCRibbonButton::IsMenuOnBottom
CMFCRibbonButton::IsPopupDefaultMenuLook
CMFCRibbonButton::IsRightAlignMenu 判定功能表是否靠右對齊。
CMFCRibbonButton::IsSingleLineText
CMFCRibbonButton::OnCalcTextSize (覆寫 CMFCRibbonBaseElement::OnCalcTextSize .)
CMFCRibbonButton::OnDrawBorder
CMFCRibbonButton::OnDraw 由架構呼叫以繪製功能區項目。 (覆寫 CMFCRibbonBaseElement::OnDraw .)
CMFCRibbonButton::OnFillBackground
CMFCRibbonButton::RemoveAllSubItems 從快顯功能表中移除所有功能表項目。
CMFCRibbonButton::RemoveSubItem 從快顯功能表中移除功能表項目。
CMFCRibbonButton::SetACCData (覆寫 CMFCRibbonBaseElement::SetACCData .)
CMFCRibbonButton::SetAlwaysLargeImage 指定使用者摺疊按鈕時,按鈕是顯示大型影像還是小型影像。
CMFCRibbonButton::SetDefaultCommand 啟用功能區按鈕的預設命令。
CMFCRibbonButton::SetDescription 設定功能區項目的描述。 (覆寫 CMFCRibbonBaseElement::SetDescription .)
CMFCRibbonButton::SetImageIndex 將索引指派給按鈕的影像。
CMFCRibbonButton::SetMenu 將快顯功能表上指派給功能區按鈕。
CMFCRibbonButton::SetParentCategory (覆寫 CMFCRibbonBaseElement::SetParentCategory .)
CMFCRibbonButton::SetRightAlignMenu 將快顯功能表對齊按鈕右邊。
CMFCRibbonButton::SetText 設定功能區項目的文字。 (覆寫 CMFCRibbonBaseElement::SetText .)

受保護的方法

名稱 描述
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));

繼承階層架構

CObject

CMFCRibbonBaseElement

CMFCRibbonButton

需求

標頭: 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]指定按鈕的命令識別碼。

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::D rawBottomText

CSize DrawBottomText(
    CDC* pDC,
    BOOL bCalcOnly);

參數

[in] Pdc
[in] bCalcOnly

傳回值

備註

CMFCRibbonButton::D rawImage

virtual void DrawImage(
    CDC* pDC,
    RibbonImageType type,
    CRect rectImage);

參數

[in] Pdc
[in] 類型
[in] rectImage

備註

CMFCRibbonButton::D rawRibbonText

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

傳回與指定之命令識別碼相關聯的快顯功能表項目索引。

int FindSubItemIndexByID(UINT uiID) const;

參數

uiID
[in]指定快顯功能表項目的命令識別碼。

傳回值

與 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] 類型

傳回值

備註

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);

參數


[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;否則為 FALSE,如果 nIndex 為負數,或超過快顯視窗功能表中的功能表項目數目。

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
功能表資源識別碼。

備註

當應用程式將功能表指派給按鈕時,按鈕會在右側顯示箭號。 如果 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

備註

另請參閱

階層架構圖表
類別