Compartir a través de


Clase CMFCColorButton

CMFCColorButton y la Clase CMFCColorBar se utilizan conjuntamente para implementar un control de selector de colores.

Sintaxis

class CMFCColorButton : public CMFCButton

Miembros

Constructores públicos

Nombre Descripción
CMFCColorButton::CMFCColorButton Construye un nuevo objeto CMFCColorButton.

Métodos públicos

Nombre Descripción
CMFCColorButton::EnableAutomaticButton Habilita y deshabilita un botón "automático" situado encima de los botones de color normales. (El botón automático estándar del sistema tiene la etiqueta Automático).
CMFCColorButton::EnableOtherButton Habilita y deshabilita un botón "otro" situado encima de los botones de color normales. (El botón estándar del sistema "otro" tiene la etiqueta Más colores).
CMFCColorButton::GetAutomaticColor Recupera el color automático actual.
CMFCColorButton::GetColor Recupera el color de un botón.
CMFCColorButton::SetColor Establece el color de un botón.
CMFCColorButton::SetColorName Establece un nombre de color.
CMFCColorButton::SetColumnsNumber Establece el número de columnas en el cuadro de diálogo del selector de colores.
CMFCColorButton::SetDocumentColors Especifica una lista de colores específicos del documento que se muestran en el cuadro de diálogo del selector de colores.
CMFCColorButton::SetPalette Especifica una paleta de colores de presentación estándar.
CMFCColorButton::SizeToContent Cambia el tamaño del control de botón, dependiendo de su tamaño de texto e imagen.

Métodos protegidos

Nombre Descripción
CMFCColorButton::IsDrawXPTheme Indica si el botón de color actual se muestra en el estilo visual de Windows XP.
CMFCColorButton::OnDraw Lo llama el marco para mostrar una imagen del botón.
CMFCColorButton::OnDrawBorder Lo llama el marco para mostrar el borde del botón.
CMFCColorButton::OnDrawFocusRect Lo llama el marco para mostrar un rectángulo de foco cuando el botón tiene un foco.
CMFCColorButton::OnShowColorPopup Lo llama el marco cuando el cuadro de diálogo del selector de colores está a punto de mostrarse.
CMFCColorButton::RebuildPalette Inicializa el miembro de datos protegido m_pPalette en la paleta especificada o en la paleta del sistema predeterminada.
CMFCColorButton::UpdateColor Lo llama el marco cuando el usuario selecciona un color de la paleta del cuadro de diálogo del selector de colores.

Miembros de datos

Nombre Descripción
m_bAltColorDlg Un valor booleano. Si es TRUE, el marco muestra el cuadro de diálogo del color CMFCColorDialog cuando se hace clic en el otro botón, o si es FALSE, el cuadro de diálogo del color del sistema. El valor predeterminado es TRUE. Para obtener más información, consulte CMFCColorButton::EnableOtherButton.
m_bAutoSetFocus Un valor booleano. Si es TRUE, el marco establece el foco en el menú del color cuando se muestra el menú, o si es FALSE, no cambia el foco. El valor predeterminado es TRUE.
CMFCColorButton::m_bEnabledInCustomizeMode Indica si el modo de personalización está habilitado para el botón de color.
m_Color Valor COLORREF. Contiene el color actualmente seleccionado.
m_ColorAutomatic Valor COLORREF. Contiene el color predeterminado actualmente seleccionado.
m_Colors CArray de valores COLORREF. Contiene los colores disponibles actualmente.
m_lstDocColors CList de valores COLORREF. Contiene los colores de documento actuales.
m_nColumns Entero. Contiene el número de columnas que se van a mostrar en la cuadrícula de colores en un menú de selección de colores.
m_pPalette Puntero a una CPalette. Contiene los colores disponibles en el menú de selección de colores actual.
m_pPopup Puntero a un objeto CMFCColorPopupMenu Class. Menú de selección de color que se muestra al hacer clic en el botón de color.
m_strAutoColorText Una cadena. Etiqueta del botón "automático" en un menú de selección de color.
m_strDocColorsText Una cadena. Etiqueta del botón en un menú de selección de color que muestra los colores de documento.
m_strOtherText Una cadena. Etiqueta del botón "otro" en un menú de selección de color.

Comentarios

De forma predeterminada, la clase CMFCColorButton se comporta como un botón de inserción que abre un cuadro de diálogo del selector de colores. El cuadro de diálogo del selector de colores contiene una matriz de botones de color pequeños y un botón "otro" que muestra un selector de colores personalizado. (El botón "otro" del sistema estándar está etiquetado como Más colores). Cuando un usuario selecciona un nuevo color, el objeto CMFCColorButton refleja el cambio y muestra el color seleccionado.

Cree un control del botón de color directamente en el código o mediante la herramienta ClassWizard y una plantilla del cuadro de diálogo. Si se crea un control del botón de color directamente, agregue una variable CMFCColorButton a la aplicación y después llame al constructor y a los métodos Create del objeto CMFCColorButton. Si usa ClassWizard, agregue una variable CButton a la aplicación y después cambie el tipo de la variable de CButton a CMFCColorButton.

El cuadro de diálogo del selector de colores ( CMFCColorBar Class) se muestra mediante el método CMFCColorButton::OnShowColorPopup cuando el marco llama al controlador de eventos OnLButtonDown. El método CMFCColorButton::OnShowColorPopup se puede invalidar para admitir la selección de color personalizada.

El objeto CMFCColorButton notifica a su elemento primario que cambia un color mediante el envío de una notificación WM_COMMAND | BN_CLICKED. El elemento primario usa el método CMFCColorButton::GetColor para recuperar el color actual.

Ejemplo

En el ejemplo siguiente se muestra cómo configurar un botón de color mediante varios métodos de la clase CMFCColorButton. Los métodos establecen el color del botón de color y su número de columnas, además habilitan tanto los botones automáticos como otros. Este ejemplo forma parte del Ejemplo de demostración de la barra de estado.

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

Encabezado: afxcolorbutton.h

CMFCColorButton::CMFCColorButton

Construye un nuevo objeto CMFCColorButton.

CMFCColorButton();

CMFCColorButton::EnableAutomaticButton

Habilite o deshabilite el botón "automático" de un control del selector de colores y establezca el color automático (predeterminado).

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

Parámetros

lpszLabel
[in] Especifica el texto del botón automático.

colorAutomatic
[in] Valor RGB que especifica el color predeterminado del botón automático.

bEnable
[in] Especifica si el botón automático está habilitado o deshabilitado.

Comentarios

CMFCColorButton::EnableOtherButton

Habilite o deshabilite el botón "otro", que aparece debajo de los botones de color normales.

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

Parámetros

lpszLabel
[in] Especifica el texto del botón.

bAltColorDlg
[in] Especifica si el cuadro de diálogo CMFCColorDialog o el cuadro de diálogo del color del sistema se abre cuando el usuario hace clic en el botón.

bEnable
[in] Especifica si el botón "otro" está habilitado o deshabilitado.

Comentarios

Haga clic en el botón "otro" para mostrar un cuadro de diálogo de color. Si el parámetro bAltColorDlg es TRUE, se muestra la Clase CMFCColorDialog; de lo contrario, se muestra el cuadro de diálogo del color del sistema.

CMFCColorButton::GetAutomaticColor

Recupera el color automático (predeterminado) actual.

COLORREF GetAutomaticColor() const;

Valor devuelto

Valor RGB que representa el color automático actual.

Comentarios

El color automático actual se establece mediante el método CMFCColorButton::EnableAutomaticButton.

CMFCColorButton::GetColor

Recupera el color seleccionado actualmente.

COLORREF GetColor() const;

Valor devuelto

Valor RGB.

Comentarios

CMFCColorButton::IsDrawXPTheme

Indica si el botón de color actual se muestra en el estilo visual de Windows XP.

BOOL IsDrawXPTheme() const;

Valor devuelto

TRUE si se admiten los estilos visuales y el botón de color actual se muestra en el estilo visual de Windows XP; de lo contrario, FALSE.

CMFCColorButton::m_bEnabledInCustomizeMode

Establece un botón de color en el modo de personalización.

BOOL m_bEnabledInCustomizeMode;

Comentarios

Si se necesita agregar un botón de color a la página del cuadro de diálogo de personalización (o permitir que el usuario realice otra selección de color durante la personalización), habilite el botón al establecer el miembro m_bEnabledInCustomizeMode en TRUE. De manera predeterminada, el valor de este miembro se establece en FALSE.

CMFCColorButton::OnDraw

Lo llama el marco para representar una imagen del botón.

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

Parámetros

pDC
[in] Apunta al contexto del dispositivo que se usa para representar la imagen del botón.

rect
[in] Rectángulo que limita el botón.

uiState
[in] Especifica el estado visual del botón.

Comentarios

Invalide este método para personalizar el proceso de representación.

CMFCColorButton::OnDrawBorder

Lo llama el marco para mostrar el borde del botón.

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

Parámetros

pDC
[in] Apunta al contexto del dispositivo que se usa para dibujar el borde.

rectClient
[in] Rectángulo en el contexto del dispositivo especificado por el parámetro pDC que define los límites del botón que se va a dibujar.

uiState
[in] Especifica el estado visual del botón.

Comentarios

Invalide esta función para personalizar la apariencia del borde del botón de color.

CMFCColorButton::OnDrawFocusRect

Lo llama el marco para mostrar un rectángulo de foco cuando el botón tiene el foco.

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

Parámetros

pDC
[in] Apunta al contexto del dispositivo que se usa para dibujar el foco del rectángulo.

rectClient
[in] Rectángulo en el contexto del dispositivo especificado por el parámetro pDC que define los límites del botón.

Comentarios

Invalide este método para personalizar la apariencia del rectángulo del foco.

CMFCColorButton::OnShowColorPopup

Se llama antes de que se muestre la barra del color emergente.

virtual void OnShowColorPopup();

Comentarios

CMFCColorButton::RebuildPalette

Inicializa el miembro de datos protegido m_pPalette en la paleta especificada o en la paleta del sistema predeterminada.

void RebuildPalette(CPalette* pPal);

Parámetros

pPal
[in] Puntero a una paleta lógica o NULL. Si es NULL, se usa la paleta predeterminada del sistema.

CMFCColorButton::SetColor

Especifica el color del botón.

void SetColor(COLORREF color);

Parámetros

color
[in] Valor RGB.

Comentarios

CMFCColorButton::SetColorName

Especifica el nombre de un color.

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

Parámetros

color
[in] Valor RGB del color.

strName
[in] Nombre del color.

Comentarios

La lista de nombres de color es global por aplicación. Por lo tanto, este método transfiere sus parámetros a CMFCColorBar::SetColorName.

CMFCColorButton::SetColumnsNumber

Define el número de columnas que se muestran en la tabla de colores que se presenta al usuario durante el proceso de selección de color del usuario.

void SetColumnsNumber(int nColumns);

Parámetros

nColumns
[in] Especifica el número de columnas.

Comentarios

El usuario puede seleccionar un color de una barra de color emergente que muestre una tabla de colores predefinidos. Use este método para definir el número de columnas de la tabla.

CMFCColorButton::SetDocumentColors

Especifica un conjunto de colores y el nombre del conjunto. El conjunto de colores se muestra mediante un objeto CMFCColorBar Class.

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

Parámetros

lpszLabel
[in] Especifica la etiqueta que se va a mostrar con el conjunto de colores del documento.

lstColors
[in] Referencia a una lista de valores RGB.

Comentarios

Un objeto CMFCColorButton mantiene una lista de valores RGB que se transfieren a un objeto CMFCColorBar Class. Cuando se muestra la barra de colores, estos colores se muestran en una sección especial cuya etiqueta se especifica mediante el parámetro lpszLabel.

CMFCColorButton::SetPalette

Especifica los colores estándar que se van a mostrar en la barra de color emergente.

void SetPalette(CPalette* pPalette);

Parámetros

pPalette
[in] Puntero a una paleta de colores.

Comentarios

CMFCColorButton::SizeToContent

Cambia el tamaño del control del botón para ajustarse a su texto e imagen.

virtual CSize SizeToContent(BOOL bCalcOnly=FALSE);

Parámetros

bCalcOnly
[in] Si no es cero, se calcula el nuevo tamaño del control de botón, pero no se cambia el tamaño real.

Valor devuelto

Objeto CSize que especifica un nuevo tamaño del control de botón.

Comentarios

CMFCColorButton::UpdateColor

Lo llama el marco cuando el usuario selecciona un color de la barra de colores que se muestra cuando el usuario hace clic en el botón de color.

virtual void UpdateColor(COLORREF color);

Parámetros

color
[in] Color seleccionado por el usuario.

Comentarios

La función UpdateColor cambia el color del botón seleccionado actualmente y notifica a su elemento primario mediante el envío de un mensaje WM_COMMAND con una notificación estándar BN_CLICKED. Use el método CMFCColorButton::GetColor para recuperar el color seleccionado.

Consulte también

Gráfico de jerarquías
Clases
CMFCButton (clase)
CMFCColorBar (clase)
CMFCColorButton::OnShowColorPopup
COLORREF
CPalette (clase)
CArray (clase)
CList (clase)
CString