CMFCRibbonColorButton Class

The CMFCRibbonColorButton class implements a color button that you can add to a ribbon bar. The ribbon color button displays a drop-down menu that contains one or more color palettes.

Syntax

class CMFCRibbonColorButton : public CMFCRibbonGallery

Members

Public Constructors

Name Description
CMFCRibbonColorButton::CMFCRibbonColorButton

Public Methods

Name Description
CMFCRibbonColorButton::AddColorsGroup Adds a group of colors to the regular color area.
CMFCRibbonColorButton::EnableAutomaticButton Specifies whether the Automatic button is enabled.
CMFCRibbonColorButton::EnableOtherButton Enables the Other button.
CMFCRibbonColorButton::GetAutomaticColor
CMFCRibbonColorButton::GetColor Returns the currently selected color.
CMFCRibbonColorButton::GetColorBoxSize Returns the size of the color elements that appear on the color bar.
CMFCRibbonColorButton::GetColumns
CMFCRibbonColorButton::GetHighlightedColor Returns the color of the currently selected element on the popup color palette.
CMFCRibbonColorButton::RemoveAllColorGroups Removes all color groups from the regular color area.
CMFCRibbonColorButton::SetColor Selects a color from the regular color area.
CMFCRibbonColorButton::SetColorBoxSize Sets the size of all the color elements that appear on the color bar.
CMFCRibbonColorButton::SetColorName
CMFCRibbonColorButton::SetColumns
CMFCRibbonColorButton::SetDocumentColors Specifies a list of RGB values to display in the document color area.
CMFCRibbonColorButton::SetPalette
CMFCRibbonColorButton::UpdateColor

Remarks

The ribbon color button displays a color bar when a user presses it. By default, this color bar contains a color selection palette called the regular color area. Optionally, the color bar can display an Automatic button, which allows the user to select a default color, and an Other button, which displays a popup color palette that contains additional colors.

Example

The following example demonstrates how to use various methods in the CMFCRibbonColorButton class. The example shows how to construct a CMFCRibbonColorButton object, set the large image, enable the Automatic button, enable the Other button, set the number of columns, set the size of all the color elements that appear on the color bar, add a group of colors to the regular color area, and specify a list of RGB values to display in the document color area. This code snippet is part of the Draw Client sample.

// Create the "Paper Color" button
CMFCRibbonColorButton *pBtnPaperColor = new CMFCRibbonColorButton(ID_VIEW_PAPERCOLOR, _T("Paper Color\ng"), TRUE, 13, 1);
pBtnPaperColor->SetAlwaysLargeImage();
pBtnPaperColor->EnableAutomaticButton(_T("&Automatic"), RGB(255, 255, 255));
pBtnPaperColor->EnableOtherButton(_T("&More Colors..."), _T("More Colors"));
pBtnPaperColor->SetColumns(10);
pBtnPaperColor->SetColorBoxSize(CSize(17, 17));
// CList<COLORREF,COLORREF> m_lstMainColors
pBtnPaperColor->AddColorsGroup(_T("Theme Colors"), m_lstMainColors, TRUE);
// CList<COLORREF,COLORREF> m_lstAdditionalColors
pBtnPaperColor->AddColorsGroup(_T(""), m_lstAdditionalColors, FALSE);
// CList<COLORREF,COLORREF> m_lstStandardColors
pBtnPaperColor->AddColorsGroup(_T("Standard Colors"), m_lstStandardColors, TRUE);
CList<COLORREF, COLORREF> lstColors;
lstColors.AddTail(RGB(255, 0, 0));
lstColors.AddTail(RGB(0, 255, 0));
lstColors.AddTail(RGB(0, 0, 255));
pBtnPaperColor->SetDocumentColors(_T("Document Colors"), lstColors);

Inheritance Hierarchy

CObject

CMFCRibbonBaseElement

CMFCRibbonButton

CMFCRibbonGallery

CMFCRibbonColorButton

Requirements

Header: afxribboncolorbutton.h

CMFCRibbonColorButton::AddColorsGroup

Adds a group of colors to the regular color area.

void AddColorsGroup(
    LPCTSTR lpszName,
    const CList<COLORREF,COLORREF>& lstColors,
    BOOL bContiguousColumns=FALSE);

Parameters

lpszName
[in] The group name.

lstColors
[in] The list of colors.

bContiguousColumns
[in] Controls how the color items are displayed in the group. If TRUE, the color items are drawn without a vertical spacing. If FALSE, the color items are drawn with a vertical spacing.

Remarks

Use this function to make the color pop-up display several groups of colors. You can control how the colors are displayed in group.

CMFCRibbonColorButton::CMFCRibbonColorButton

Constructs a CMFCRibbonColorButton object.

CMFCRibbonColorButton();

CMFCRibbonColorButton(
    UINT nID,
    LPCTSTR lpszText,
    int nSmallImageIndex,
    COLORREF color = RGB(0, 0, 0));

CMFCRibbonColorButton(
    UINT nID,
    LPCTSTR lpszText,
    BOOL bSimpleButtonLook,
    int nSmallImageIndex,
    int nLargeImageIndex,
    COLORREF color = RGB(0, 0, 0));

Parameters

nID
[in] Specifies the command ID of the command to execute when a user clicks the button.

lpszText
[in] Specifies the text to appear on the button.

nSmallImageIndex
[in] The zero-based index of the small image to appear on the button.

color
[in] The color of the button (defaults to black).

bSimpleButtonLook
[in] If TRUE, the button is drawn as a simple rectangle.

nLargeImageIndex
[in] The zero-based index of the large image to appear on the button.

Return Value

Remarks

CMFCRibbonColorButton::EnableAutomaticButton

Specifies whether the Automatic button is enabled.

void EnableAutomaticButton(
    LPCTSTR lpszLabel,
    COLORREF colorAutomatic,
    BOOL bEnable=TRUE,
    LPCTSTR lpszToolTip=NULL,
    BOOL bOnTop=TRUE,
    BOOL bDrawBorder=FALSE);

Parameters

lpszLabel
[in] The label for the Automatic button.

colorAutomatic
[in] An RGB value that specifies the Automatic button's default color.

bEnable
[in] TRUE if the Automatic button is enabled; FALSE if it is disabled.

lpszToolTip
[in] The tooltip of the Automatic button.

bOnTop
[in] Specifies whether the Automatic button is at the top, before color palette.

bDrawBorder
[in] TRUE if the application draws a border around the color bar on the ribbon color button. Color bar displays the currently selected color. FALSE if the application does not draw a border

CMFCRibbonColorButton::EnableOtherButton

Enables the Other button.

void EnableOtherButton(
    LPCTSTR lpszLabel,
    LPCTSTR lpszToolTip=NULL);

Parameters

lpszLabel
The button's label.

lpszToolTip
The tooltip text for the Other button.

Remarks

The Other button is the button that is displayed below the group of colors. When the user clicks the Other button, it displays a color dialog.

CMFCRibbonColorButton::GetAutomaticColor

Retrieves the current automatic-button color.

COLORREF GetAutomaticColor() const;

Return Value

An RGB color value that represents the current automatic-button color.

Remarks

The automatic-button color is set by the colorAutomatic parameter passed to the CMFCRibbonColorButton::EnableAutomaticButton method.

CMFCRibbonColorButton::GetColor

Returns the currently selected color.

COLORREF GetColor() const;

Return Value

The color selected by clicking the button.

CMFCRibbonColorButton::GetColorBoxSize

Returns the size of the color elements that appear on the color bar.

CSize GetColorBoxSize() const;

Return Value

The size of the color buttons in the drop-down color palette.

CMFCRibbonColorButton::GetColumns

Gets the number of items in a row of the ribbon color button's gallery display.

int GetColumns() const;

Return Value

Returns the number of icons in each row.

Remarks

CMFCRibbonColorButton::GetHighlightedColor

Returns the color of the currently selected element on the pop-up color palette.

COLORREF GetHighlightedColor() const;

Return Value

The color of currently selected element on the pop-up color palette.

CMFCRibbonColorButton::RemoveAllColorGroups

Removes all color groups from the regular color area.

void RemoveAllColorGroups();

CMFCRibbonColorButton::SetColor

Selects a color from the regular color area.

void SetColor(COLORREF color);

Parameters

color
[in] A color to set.

CMFCRibbonColorButton::SetColorBoxSize

Sets the size of all the color elements that appear on the color bar.

void SetColorBoxSize(CSize sizeBox);

Parameters

sizeBox
[in] The new size of the color buttons in the color palette.

CMFCRibbonColorButton::SetColorName

Sets a new name for a specified color.

static void __stdcall SetColorName(
    COLORREF color,
    const CString& strName);

Parameters

color
[in] The RGB value of a color.

strName
[in] The new name for the specified color.

Remarks

Because it calls CMFCColorBar::SetColorName, this method changes the name of the specified color in all CMFCColorBar objects in your application.

CMFCRibbonColorButton::SetColumns

Sets the number of columns displayed in the table of colors that is presented to the user during the user's color selection process.

void SetColumns(int nColumns);

Parameters

nColumns
[in] The number of color icons to display in each row.

Remarks

CMFCRibbonColorButton::SetDocumentColors

Specifies a list of RGB values to display in the document color area.

void SetDocumentColors(
    LPCTSTR lpszLabel,
    CList<COLORREF,COLORREF>& lstColors);

Parameters

lpszLabel
[in] The text to be displayed with the document colors.

lstColors
[in] A reference to a list of RGB values.

CMFCRibbonColorButton::SetPalette

Specifies the standard colors to display in the color table that the color button displays.

void SetPalette(CPalette* pPalette);

Parameters

pPalette
[in] A pointer to a color palette.

Remarks

CMFCRibbonColorButton::UpdateColor

Called by the framework when the user selects a color from the color table displayed when the user clicks the color button.

void UpdateColor(COLORREF color);

Parameters

color
[in] A color selected by the user.

Remarks

The CMFCRibbonColorButton::UpdateColor method changes the currently selected button's color and notifies its parent by sending a WM_COMMAND message with a BN_CLICKED standard notification. Use the CMFCRibbonColorButton::GetColor method to retrieve the selected color.

See also

Hierarchy Chart
Classes
CMFCRibbonGallery Class