Класс CMFCRibbonButton
Класс CMFCRibbonButton
реализует кнопки, которые можно размещать на элементах ленты, например на панелях, панелях быстрого доступа и во всплывающих меню.
Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.
Синтаксис
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] Указывает идентификатор команды кнопки.
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