Compartilhar via


Classe CMFCColorMenuButton

The CMFCColorMenuButton classe oferece suporte a um comando de menu ou um botão de barra de ferramentas que inicia um seletor de cor caixa de diálogo.

class CMFCColorMenuButton : public CMFCToolBarMenuButton

Membros

Construtores públicos

Nome

Descrição

CMFCColorMenuButton::CMFCColorMenuButton

Constrói um CMFCColorMenuButton objeto.

Métodos públicos

Nome

Descrição

CMFCColorMenuButton::EnableAutomaticButton

Habilita e desabilita um botão "automático" que está posicionado acima dos botões de cor normal.(O botão automática padrão do sistema é rotulado Automático.)

CMFCColorMenuButton::EnableDocumentColors

Ativa a exibição de cores específicas de documentos em vez de cores do sistema.

CMFCColorMenuButton::EnableOtherButton

Habilita e desabilita um botão "Outros" que é posicionado abaixo dos botões de cor normal.(O padrão do sistema "Outros" botão é rotulado comMais Colors….)

CMFCColorMenuButton::EnableTearOff

Permite que a capacidade de separar um painel Cor.

CMFCColorMenuButton::GetAutomaticColor

Recupera a corrente cor automático.

CMFCColorMenuButton::GetColor

Recupera a cor do botão corrente.

CMFCColorMenuButton::GetColorByCmdID

Recupera a cor que corresponda a uma ID de comando especificado.

CMFCColorMenuButton::OnChangeParentWnd

Chamado pela estrutura quando a janela pai é alterada.

CMFCColorMenuButton::OpenColorDialog

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

CMFCColorMenuButton::SetColor

Define a cor do botão cor corrente.

CMFCColorMenuButton::SetColorByCmdID

Define a cor do botão de menu de cores especificada.

CMFCColorMenuButton::SetColorName

Define um novo nome para a cor especificada.

CMFCColorMenuButton::SetColumnsNumber

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

Métodos protegidos

Nome

Descrição

CMFCColorMenuButton::CopyFrom

Copia outro botão de barra de ferramentas do botão corrente.

CMFCColorMenuButton::CreatePopupMenu

Cria um seletor de cor caixa de diálogo.

CMFCColorMenuButton::IsEmptyMenuAllowed

Indica se menus vazias suporte.

CMFCColorMenuButton::OnDraw

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

CMFCColorMenuButton::OnDrawOnCustomizeList

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

Comentários

Para substituir o botão de barra de ferramentas ou comando de menu original com um CMFCColorMenuButton objeto, criar o CMFCColorMenuButton objeto, definido qualquer apropriado Classe CMFCColorBar estilos e, em seguida, telefonar a ReplaceButton método para o Classe CMFCToolBar classe. Se você personalizar uma barra de ferramentas, chamar o CMFCToolBarsCustomizeDialog::ReplaceButton método.

A caixa de diálogo Seletor de cores é criada durante o processamento do CMFCColorMenuButton::CreatePopupMenu manipulador de eventos. O manipulador de eventos notifica o quadro pai com um WM_COMMAND mensagem. The CMFCColorMenuButton objeto envia a ID do controle atribuída para o botão de barra de ferramentas ou comando de menu original.

Exemplo

O exemplo a seguir demonstra como criar e configurar um botão de menu de cores usando vários métodos no CMFCColorMenuButton classe. No exemplo, um CPalette o objeto é criado pela primeira vez e, em seguida, usado para construir um objeto da CMFCColorMenuButton classe. The CMFCColorMenuButton o objeto foi configurado, em seguida, permitindo que seus botões automático e outros e definindo sua cor e o número de colunas. Esse código é parte do Exemplo do WordPad: Aplicativo WordPad do MFC.

 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

Conceitos

Gráfico de hierarquia do MFC

Referência

Classe CMFCColorBar

Classe CMFCToolBar

Classe CMFCToolBarsCustomizeDialog

Classe CMFCColorButton

Outros recursos

Classes (@@)