Compartilhar via


Classe CMFCColorButton

As classes CMFCColorButton e CMFCColorBar são usadas em conjunto para implementar um controle de seletor de cor.

Sintaxe

class CMFCColorButton : public CMFCButton

Membros

Construtores públicos

Nome Descrição
CMFCColorButton::CMFCColorButton Constrói um novo objeto CMFCColorButton.

Métodos públicos

Nome Descrição
CMFCColorButton::EnableAutomaticButton Habilita e desabilita um botão "automático" posicionado acima dos botões de cor regulares. (O botão automático do sistema padrão é rotulado como Automático).
CMFCColorButton::EnableOtherButton Habilita e desabilita um botão "outro" posicionado abaixo dos botões de cor regulares. (O "outro" botão padrão do sistema é rotulado como Mais Cores).
CMFCColorButton::GetAutomaticColor Recupera a cor automática atual.
CMFCColorButton::GetColor Recupera a cor de um botão.
CMFCColorButton::SetColor Define a cor de um botão.
CMFCColorButton::SetColorName Define um nome de cor.
CMFCColorButton::SetColumnsNumber Define o número de colunas na caixa de diálogo seletor de cor.
CMFCColorButton::SetDocumentColors Especifica uma lista de cores específicas do documento exibidas na caixa de diálogo do seletor de cor.
CMFCColorButton::SetPalette Especifica uma paleta de cores de exibição padrão.
CMFCColorButton::SizeToContent Altera o tamanho do controle de botão, dependendo do tamanho do texto e da imagem.

Métodos protegidos

Nome Descrição
CMFCColorButton::IsDrawXPTheme Indica se o botão de cor atual é exibido no estilo visual do Windows XP.
CMFCColorButton::OnDraw Chamado pela estrutura para exibir uma imagem do botão.
CMFCColorButton::OnDrawBorder Chamado pela estrutura para exibir a borda do botão.
CMFCColorButton::OnDrawFocusRect Chamado pela estrutura para exibir um retângulo de foco quando o botão tiver um foco.
CMFCColorButton::OnShowColorPopup Chamado pela estrutura quando a caixa de diálogo seletor de cor estiver prestes a ser exibida.
CMFCColorButton::RebuildPalette Inicializa o membro de dados protegidos m_pPalette para a paleta especificada ou a paleta padrão do sistema.
CMFCColorButton::UpdateColor Chamado pela estrutura quando o usuário seleciona uma cor na paleta da caixa de diálogo seletor de cor.

Membros de dados

Nome Descrição
m_bAltColorDlg Um valor booleano. Se TRUE, a estrutura exibirá a caixa de diálogo de cor CMFCColorDialog quando o botão outro for clicado ou, se FALSE, será exibida a caixa de diálogo de cor do sistema. O valor padrão é TRUE. Para obter mais informações, consulte CMFCColorButton::EnableOtherButton.
m_bAutoSetFocus Um valor booleano. Se TRUE, a estrutura definirá o foco no menu de cores quando o menu é exibido ou, se for FALSO, não alterará o foco. O valor padrão é TRUE.
CMFCColorButton::m_bEnabledInCustomizeMode Indica se o modo de personalização está habilitado para o botão de cores.
m_Color Um valor COLORREF. Contém a cor selecionada no momento.
m_ColorAutomatic Um valor COLORREF. Contém a cor padrão selecionada no momento.
m_Colors Um CArray de valores COLORREF. Contém as cores disponíveis no momento.
m_lstDocColors Uma CList de valores COLORREF. Contém as cores atuais do documento.
m_nColumns Um inteiro. Contém o número de colunas a serem exibidas na grade de cores em um menu de seleção de cor.
m_pPalette Um ponteiro para um CPalette. Contém as cores disponíveis no menu de seleção de cor atual.
m_pPopup Um ponteiro para um objeto da classe CMFCColorPopupMenu. O menu de seleção de cor exibido quando você clica no botão de cor.
m_strAutoColorText Uma cadeia de caracteres. O rótulo do botão "automático" em um menu de seleção de cor.
m_strDocColorsText Uma cadeia de caracteres. O rótulo do botão em um menu de seleção de cor que exibe as cores do documento.
m_strOtherText Uma cadeia de caracteres. O rótulo do botão "outro" em um menu de seleção de cor.

Comentários

Por padrão, a classe CMFCColorButton se comporta como um botão de push que abre uma caixa de diálogo do seletor de cor. A caixa de diálogo seletor de core contém uma matriz de botões de cores pequenos e um botão "outro" que exibe um seletor de cores personalizadas. (O botão padrão do sistema "outro" é rotulado como Mais cores). Quando um usuário seleciona uma nova cor, o objeto CMFCColorButton reflete a alteração e exibe a cor selecionada.

Crie um controle de botão de cor diretamente em seu código ou usando a ferramenta ClassWizard e um modelo de caixa de diálogo. Se criar um controle de botão de cor diretamente, adicione uma variável CMFCColorButton ao seu aplicativo e chame o construtor e os métodos Create do objetoCMFCColorButton. Se usar o ClassWizard, adicione uma variável CButton a seu aplicativo e altere o tipo da variável de CButton para CMFCColorButton.

A caixa de diálogo seletor de cor (Classe CMFCColorBar) será exibida pelo método CMFCColorButton::OnShowColorPopup quando a estrutura chama o manipulador de eventos OnLButtonDown. O método CMFCColorButton::OnShowColorPopup pode ser substituído para dar suporte à seleção de cor personalizada.

O objeto CMFCColorButton notifica seu pai de que uma cor está mudando enviando-lhe uma notificação WM_COMMAND | BN_CLICKED. O pai usa o método CMFCColorButton::GetColor para recuperar a cor atual.

Exemplo

O exemplo a seguir demonstra como configurar um botão de cor usando vários métodos na classe CMFCColorButton. Os métodos definem a cor do botão de cor e seu número de colunas e habilitam os botões automático e outros. Este exemplo faz parte da Amostra de demonstração da Barra de Status.

CMFCColorButton m_wndTextColor;
m_wndTextColor.EnableAutomaticButton(_T("Default"), afxGlobalData.clrBtnText);
m_wndTextColor.EnableOtherButton(_T("Other..."));
m_wndTextColor.SetColor((COLORREF)-1);
m_wndTextColor.SetColorName((COLORREF)-1, "Default Color");
m_wndTextColor.SetColumnsNumber(3);

Requisitos

Cabeçalho: afxcolorbutton.h

CMFCColorButton::CMFCColorButton

Constrói um novo objeto CMFCColorButton.

CMFCColorButton();

CMFCColorButton::EnableAutomaticButton

Habilite ou desabilite o botão "automático" de um controle de seletor de cor e defina a cor automática (padrão).

void EnableAutomaticButton(
    LPCTSTR lpszLabel,
    COLORREF colorAutomatic,
    BOOL bEnable=TRUE);

Parâmetros

lpszLabel
[in] Especifica o texto do botão automático.

colorAutomatic
[in] Um valor RGB que especifica a cor padrão do botão automático.

bEnable
[in] Especifica se o botão automático está habilitado ou desabilitado.

Comentários

CMFCColorButton::EnableOtherButton

Habilite ou desabilite o botão "outro", que aparece abaixo dos botões de cor regulares.

void EnableOtherButton(
    LPCTSTR lpszLabel,
    BOOL bAltColorDlg=TRUE,
    BOOL bEnable=TRUE);

Parâmetros

lpszLabel
[in] Especifica o texto do botão.

bAltColorDlg
[in] Especifica se a caixa de diálogo CMFCColorDialog ou a caixa de diálogo cor do sistema é aberta quando o usuário clica no botão.

bEnable
[in] Especifica se o botão "outro" está habilitado ou desabilitado.

Comentários

Clique no botão "outro" para exibir uma caixa de diálogo de cor. Se o parâmetro bAltColorDlg for TRUE, a classe CMFCColorDialog será exibida; caso contrário, a caixa de diálogo cor do sistema será exibida.

CMFCColorButton::GetAutomaticColor

Recupera a cor automática atual (padrão).

COLORREF GetAutomaticColor() const;

Valor de Devolução

Um valor RGB que representa a cor automática atual.

Comentários

A cor automática atual é definida pelo método CMFCColorButton::EnableAutomaticButton.

CMFCColorButton::GetColor

Recupera a co selecionada no momento.

COLORREF GetColor() const;

Valor de Devolução

Um valor RGB.

Comentários

CMFCColorButton::IsDrawXPTheme

Indica se o botão de cor atual é exibido no estilo visual do Windows XP.

BOOL IsDrawXPTheme() const;

Valor de Devolução

TRUE se houver suporte para estilos visuais e o botão de cores atual for exibido no estilo visual do Windows XP; caso contrário, FALSE.

CMFCColorButton::m_bEnabledInCustomizeMode

Define um botão de cor para o modo de personalização.

BOOL m_bEnabledInCustomizeMode;

Comentários

Se precisar adicionar um botão de cor à página de uma caixa de diálogo de personalização (ou permitir que o usuário faça outra seleção de cor durante a personalização), habilite o botão definindo o membro m_bEnabledInCustomizeMode como TRUE. Por padrão, esse membro é definido como FALSE.

CMFCColorButton::OnDraw

Chamado pela estrutura para renderizar uma imagem do botão.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    UINT uiState);

Parâmetros

pDC
[in] Aponta para o contexto do dispositivo usado para renderizar a imagem do botão.

rect
[in] Um retângulo que limita o botão.

uiState
[in] Especifica o estado visual do botão.

Comentários

Substitua esse método para personalizar o processo de renderização.

CMFCColorButton::OnDrawBorder

Chamado pela estrutura para exibir a borda do botão.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect& rectClient,
    UINT uiState);

Parâmetros

pDC
[in] Aponta para o contexto do dispositivo usado para desenhar a borda.

rectClient
[in] Um retângulo no contexto do dispositivo especificado pelo parâmetro pDC que define os limites do botão a ser desenhado.

uiState
[in] Especifica o estado visual do botão.

Comentários

Substitua essa função para personalizar a aparência da borda do botão de cor.

CMFCColorButton::OnDrawFocusRect

Chamado pela estrutura para exibir um retângulo de foco quando o botão tiver foco.

virtual void OnDrawFocusRect(
    CDC* pDC,
    const CRect& rectClient);

Parâmetros

pDC
[in] Aponta para o contexto do dispositivo usado para desenhar o retângulo de foco.

rectClient
[in] Um retângulo no contexto do dispositivo especificado pelo parâmetro pDC que define os limites do botão.

Comentários

Substitua esse método para personalizar a aparência do retângulo de foco.

CMFCColorButton::OnShowColorPopup

Chamado antes da barra de cores pop-up ser exibida.

virtual void OnShowColorPopup();

Comentários

CMFCColorButton::RebuildPalette

Inicializa o membro de dados protegidos m_pPalette para a paleta especificada ou a paleta padrão do sistema.

void RebuildPalette(CPalette* pPal);

Parâmetros

pPal
[in] Um ponteiro para uma paleta lógica ou NULL. Se NULL, será usada a paleta padrão do sistema.

CMFCColorButton::SetColor

Especifica a cor do botão.

void SetColor(COLORREF color);

Parâmetros

color
[in] Um valor RGB.

Comentários

CMFCColorButton::SetColorName

Especifica o nome de uma cor.

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

Parâmetros

color
[in] O valor RGB da cor.

strName
[in] O nome da cor.

Comentários

A lista de nomes de cores é global por aplicativo. Consequentemente, esse método transfere seus parâmetros para CMFCColorBar::SetColorName.

CMFCColorButton::SetColumnsNumber

Define o número de colunas exibidas na tabela de cores que é apresentada ao usuário durante o processo de seleção de cor pelo usuário.

void SetColumnsNumber(int nColumns);

Parâmetros

nColunas
[in] Especifica o número de colunas.

Comentários

O usuário pode selecionar uma cor de uma barra de cores pop-up que exibe uma tabela de cores predefinidas. Use esse método para definir o número de colunas na tabela.

CMFCColorButton::SetDocumentColors

Especifica um conjunto de cores e o nome do conjunto. O conjunto de cores é exibido usando um objeto classe CMFCColorBar.

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

Parâmetros

lpszLabel
[in] Especifica o rótulo a ser exibido com o conjunto de cores do documento.

lstColors
[in] Uma referência a uma lista de valores RGB.

Comentários

Um objeto CMFCColorButton mantém uma lista de valores RGB que são transferidos para um objeto Classe CMFCColorBar. Quando a barra de cores é exibida, essas cores são mostradas em uma seção especial cujo rótulo é especificado pelo parâmetro lpszLabel.

CMFCColorButton::SetPalette

Especifica as cores padrão a serem exibidas na barra de cores pop-up.

void SetPalette(CPalette* pPalette);

Parâmetros

pPalette
[in] Um ponteiro para uma paleta de cores.

Comentários

CMFCColorButton::SizeToContent

Redimensiona o controle de botão para ajustar seu texto e imagem.

virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);

Parâmetros

bCalcOnly
[in] Se não for zero, será calculado o novo tamanho do controle de botão, mas o tamanho real não será alterado.

Valor de Devolução

Um objeto CSize que especifica um novo tamanho de controle de botão.

Comentários

CMFCColorButton::UpdateColor

Chamado pela estrutura quando o usuário seleciona uma cor na barra de cores que é exibida quando o usuário clica no botão de cores.

virtual void UpdateColor(COLORREF color);

Parâmetros

color
[in] Uma cor selecionada pelo usuário.

Comentários

A função UpdateColor altera a cor do botão selecionado no momento e notifica seu pai enviando uma mensagem WM_COMMAND com uma notificação padrão BN_CLICKED. Use o método CMFCColorButton::GetColor para recuperar a cor selecionada.

Confira também

Gráfico da hierarquia
Classes
Classe CMFCButton
Classe CMFCColorBar
CMFCColorButton::OnShowColorPopup
COLORREF
Classe CPalette
Classe CArray
Classe CList
CString