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 retorno
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 retorno
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 retorno
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 retorno
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
REFERÊNCIA COLORIDA
Classe CPalette
Classe CArray
Classe CList
CString