Compartilhar via


Classe CMFCColorMenuButton

A classe de CMFCColorMenuButton suporta um comando de menu ou um botão da barra de ferramentas que ligue uma caixa de diálogo seletor de cor.

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Membros

Construtores public

Nome

Descrição

CMFCColorMenuButton::CMFCColorMenuButton

Constrói um objeto de CMFCColorMenuButton .

Métodos públicos

Nome

Descrição

CMFCColorMenuButton::EnableAutomaticButton

Ativar e desativar um botão “automático” que está localizado acima dos botões normais de cor. (O botão automático do sistema padrão é rotulado Automático.)

CMFCColorMenuButton::EnableDocumentColors

Permite que a exibição de cores a específicas em vez de cores do sistema.

CMFCColorMenuButton::EnableOtherButton

Ativar e desativar um “outro” botão que está localizado abaixo dos botões normais de cor. (O sistema padrão “outro” botão é rotulado Cores mais….)

CMFCColorMenuButton::EnableTearOff

Permite que a capacidade de rasgar fora um painel de cor.

CMFCColorMenuButton::GetAutomaticColor

Recupera a cor automático atual.

CMFCColorMenuButton::GetColor

Recupera a cor atual do botão.

CMFCColorMenuButton::GetColorByCmdID

Recupera a cor que corresponde a um certo ID de comando

CMFCColorMenuButton::OnChangeParentWnd

Chamado pela estrutura quando a janela pai alterar.

CMFCColorMenuButton::OpenColorDialog

Abrir uma caixa de diálogo de seleção de cor.

CMFCColorMenuButton::SetColor

Define a cor do botão atual da cor.

CMFCColorMenuButton::SetColorByCmdID

Define a cor do botão especificado no menu de cor.

CMFCColorMenuButton::SetColorName

Define um novo nome para a cor especificada.

CMFCColorMenuButton::SetColumnsNumber

Define o número de colunas que são exibidas por um objeto de CMFCColorBar .

Métodos protegidos

Nome

Descrição

CMFCColorMenuButton::CopyFrom

Copia outro botão da barra de ferramentas para o botão atual.

CMFCColorMenuButton::CreatePopupMenu

Cria uma caixa de diálogo seletor de cor.

CMFCColorMenuButton::IsEmptyMenuAllowed

Indica se os menus vazias são suportados.

CMFCColorMenuButton::OnDraw

Chamado pela estrutura para exibir uma imagem em um botão.

CMFCColorMenuButton::OnDrawOnCustomizeList

Chamado pela estrutura antes que um objeto de CMFCColorMenuButton é exibido na lista de uma caixa de diálogo de personalização da barra de ferramentas.

Comentários

Para substituir o comando de menu ou no botão da barra de ferramentas original com um objeto de CMFCColorMenuButton , cria o objeto de CMFCColorMenuButton , define estilos apropriadas de Classe CMFCColorBar em seguida, chame o método de ReplaceButton da classe de Classe CMFCToolBar . Se você personaliza uma barra de ferramentas, chame o método de CMFCToolBarsCustomizeDialog::ReplaceButton .

A caixa de diálogo seletor de cores é criada durante o processamento do manipulador de eventos de CMFCColorMenuButton::CreatePopupMenu . O manipulador de eventos notifica o elemento pai com uma mensagem de WM_COMMAND . O objeto de CMFCColorMenuButton envia a identificação do controle que é atribuído ao comando de menu ou para o botão da barra de ferramentas original.

Exemplo

O exemplo a seguir demonstra como criar e configurar um botão de menu de cores usando vários métodos na classe de CMFCColorMenuButton . Em o exemplo, um objeto de CPalette é projetado principalmente e então usado para construir um objeto da classe de CMFCColorMenuButton . O objeto de CMFCColorMenuButton é configurado em seu ativação automática e outros botões, e definindo sua cor e o número de colunas. Esse código é parte de Exemplo de preenchimento da palavra.

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

Hierarquia de herança

CObject

   CMFCToolBarButton

      CMFCToolBarMenuButton

         CMFCColorMenuButton

Requisitos

Cabeçalho: afxcolormenubutton.h

Consulte também

Referência

Gráfico da hierarquia

Classe CMFCColorBar

Classe CMFCToolBar

Classe CMFCToolBarsCustomizeDialog

Classe CMFCColorButton

Outros recursos

Classes MFC