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


Класс CMFCRibbonButton

Класс 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

Замечания

См. также

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