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


Класс CMFCColorMenuButton

Класс CMFCColorMenuButton поддерживает команду меню или кнопки панели инструментов, которая запускает диалоговое окно палитра цветов.

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Члены

Bb983045.collapse_all(ru-ru,VS.110).gifОткрытые конструкторы

Имя

Описание

CMFCColorMenuButton::CMFCColorMenuButton

Создает объект CMFCColorMenuButton.

Bb983045.collapse_all(ru-ru,VS.110).gifОткрытые методы

Имя

Описание

CMFCColorMenuButton::EnableAutomaticButton

Включает и блокирует "," автоматическая кнопку, которая располагается на обычный кнопками цвета.(Кнопка стандартной системы автоматическая на которую указывает Автоматически).

CMFCColorMenuButton::EnableDocumentColors

Включает отображение цвета вместо цветов документ- определенной системы.

CMFCColorMenuButton::EnableOtherButton

Включает и блокирует "другой" кнопку, которая располагается под обычный кнопками цвета.(Стандартная система "другой" указывает More Colors…).

CMFCColorMenuButton::EnableTearOff

Включает возможность сорвать панель цвета.

CMFCColorMenuButton::GetAutomaticColor

Извлекает текущий автоцвет.

CMFCColorMenuButton::GetColor

Извлекает текущий цвет кнопки.

CMFCColorMenuButton::GetColorByCmdID

Получает цвет, соответствующий указанному идентификатору команды

CMFCColorMenuButton::OnChangeParentWnd

Вызываемый платформой, если родительское окно изменяется.

CMFCColorMenuButton::OpenColorDialog

Открывает диалоговое окно выбора цвета.

CMFCColorMenuButton::SetColor

Устанавливает цвет текущей кнопки цвета.

CMFCColorMenuButton::SetColorByCmdID

Устанавливает цвет палитры указанной кнопки.

CMFCColorMenuButton::SetColorName

Устанавливает новое имя для указанного цвета.

CMFCColorMenuButton::SetColumnsNumber

Устанавливает количество столбцов, отображаемых объектом CMFCColorBar.

Bb983045.collapse_all(ru-ru,VS.110).gifЗащищенные методы

Имя

Описание

CMFCColorMenuButton::CopyFrom

Копирует вторая кнопка панели инструментов с текущим кнопке.

CMFCColorMenuButton::CreatePopupMenu

Создает диалоговое окно палитра цветов.

CMFCColorMenuButton::IsEmptyMenuAllowed

Указывает, поддерживаются ли пустые меню.

CMFCColorMenuButton::OnDraw

Вызываемый платформой для отображения образа на кнопке.

CMFCColorMenuButton::OnDrawOnCustomizeList

Вызываемый платформой, прежде чем объект CMFCColorMenuButton будет отображаться в списке диалогового окна настройки панели инструментов.

Заметки

Чтобы заменить исходный команду меню или кнопки панели инструментов с объектом CMFCColorMenuButton создайте объект CMFCColorMenuButton задайте все соответствующие стили Класс CMFCColorBar, и затем вызовите метод ReplaceButton класса Класс CMFCToolBar.Если вы настраиваете панель инструментов, вызовите метод CMFCToolBarsCustomizeDialog::ReplaceButton.

Диалоговое окно "Палитра цветов" создано во время обработки метод обработчика событий CMFCColorMenuButton::CreatePopupMenu.Обработчик событий уведомляет родительский кадр с сообщением WM_COMMAND.Объект CMFCColorMenuButton отправляет идентификатор элемента управления, присвоено к исходной команде меню или кнопке панели инструментов.

Пример

В следующем примере показано, как создать и настроить кнопку палитры с помощью различных методов в классе CMFCColorMenuButton.В этом примере объект CPalette сначала создать, а затем используется для создания объекта класса CMFCColorMenuButton.Объект CMFCColorMenuButton затем настроить, позволяя его автоматических и другие кнопки и установление его цвет и число столбцов.Данный пример кода является частью Пример запуска площадки слова.

    CPalette    m_palColorPicker;   // Palette for color picker
    int         m_nNumColours;


...


CMFCColorMenuButton* CFormatBar::CreateColorButton ()
{
    if (m_palColorPicker.GetSafeHandle () == NULL)
    {
        m_nNumColours = sizeof (crColours)/sizeof(ColourTableEntry);
        ASSERT(m_nNumColours <= MAX_COLOURS);
        if (m_nNumColours > MAX_COLOURS)
            m_nNumColours = MAX_COLOURS;

        // Create the palette
        struct 
        {
            LOGPALETTE    LogPalette;
            PALETTEENTRY  PalEntry[MAX_COLOURS];
        }pal;

        LOGPALETTE* pLogPalette = (LOGPALETTE*) &pal;
        pLogPalette->palVersion    = 0x300;
        pLogPalette->palNumEntries = (WORD) m_nNumColours; 

        for (int i = 0; i < m_nNumColours; i++)
        {
            pLogPalette->palPalEntry[i].peRed   = GetRValue(crColours[i].crColour);
            pLogPalette->palPalEntry[i].peGreen = GetGValue(crColours[i].crColour);
            pLogPalette->palPalEntry[i].peBlue  = GetBValue(crColours[i].crColour);
            pLogPalette->palPalEntry[i].peFlags = 0;
        }

        m_palColorPicker.CreatePalette (pLogPalette);
    }


    CMFCColorMenuButton* pColorButton = new 
        CMFCColorMenuButton (ID_CHAR_COLOR, _T("Text Color..."), &m_palColorPicker);

    pColorButton->EnableAutomaticButton (_T("Automatic"), RGB (0, 0, 0));
    pColorButton->EnableOtherButton (_T("More Colors..."));
    pColorButton->EnableDocumentColors (_T("Document's Colors"));
    pColorButton->EnableTearOff (ID_COLOR_TEAROFF, 5, 2);
    pColorButton->SetColumnsNumber (8);
    pColorButton->SetColor(RGB(0,0,255));

    // Initialize color names:
    for (int i = 0; i < m_nNumColours; i++)
    {
        CMFCColorMenuButton::SetColorName (crColours[i].crColour, crColours[i].szName);
    }

    return pColorButton;
}

Иерархия наследования

CObject

   CMFCToolBarButton

      CMFCToolBarMenuButton

         CMFCColorMenuButton

Требования

заголовок: afxcolormenubutton.h

См. также

Ссылки

Диаграмма иерархии

Класс CMFCColorBar

Класс CMFCToolBar

Класс CMFCToolBarsCustomizeDialog

Класс CMFCColorButton

Другие ресурсы

Классы MFC