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