Поделиться через


Класс CMFCRibbonButton

Замечание

Библиотека классов Microsoft Foundation (MFC) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.

Класс CMFCRibbonButton реализует кнопки, которые можно размещать на элементах ленты, например на панелях, панелях быстрого доступа и во всплывающих меню.

Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

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

Параметры

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

Замечания

См. также

Диаграмма иерархии
Классы