CBitmapButton (clase)
Crea controles de botón de comando etiquetados con imágenes de mapa de bits en lugar de texto.
Sintaxis
class CBitmapButton : public CButton
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CBitmapButton::CBitmapButton | Construye un objeto CBitmapButton . |
Métodos públicos
Nombre | Descripción |
---|---|
CBitmapButton::AutoLoad | Asocia un botón de un cuadro de diálogo a un objeto de la clase CBitmapButton , carga los mapas de bits por nombre y ajusta el tamaño del botón para adaptarse al mapa de bits. |
CBitmapButton::LoadBitmaps | Inicializa el objeto cargando uno o varios recursos de mapa de bits con nombre desde el archivo de recursos de la aplicación y asociando los mapas de bits al objeto. |
CBitmapButton::SizeToContent | Ajusta el tamaño del botón para adaptarlo al mapa de bits. |
Comentarios
Los objetos CBitmapButton
contienen hasta cuatro mapas de bits, que contienen imágenes de los distintos estados que puede adoptar un botón: hacia arriba (o normal), hacia abajo (o seleccionado), centrado y deshabilitado. Solo se requiere el primer mapa de bits; los demás son opcionales.
Las imágenes de botón de mapa de bits incluyen el borde alrededor de la imagen, así como la propia imagen. Normalmente, el borde desempeña una parte en la visualización del estado del botón. Por ejemplo, el mapa de bits del estado centrado suele ser como el del estado arriba, pero con un rectángulo discontinuo insertado en el borde o una línea sólida gruesa en el borde. El mapa de bits del estado deshabilitado suele ser similar al del estado hacia arriba, pero tiene un contraste inferior (como una selección de menú atenuada).
Estos mapas de bits pueden tener cualquier tamaño, pero todos se tratan como si fueran del mismo tamaño que el mapa de bits del estado hacia arriba.
Varias aplicaciones exigen diferentes combinaciones de imágenes de mapa de bits:
Arriba | Bajar | Enfocado | Deshabilitado | Application |
---|---|---|---|---|
× | Bitmap | |||
× | × | Botón sin estilo de WS_TABSTOP | ||
× | × | × | × | Botón de cuadro de diálogo con todos los estados |
× | × | × | Botón de cuadro de diálogo con estilo WS_TABSTOP |
Al crear un control de botón de mapa de bits, establezca el estilo BS_OWNERDRAW para especificar que el botón es dibujado por el propietario. Esto hace que Windows envíe los mensajes WM_MEASUREITEM y WM_DRAWITEM para el botón; el marco controla estos mensajes y administra la apariencia del botón.
Para crear un control de botón de mapa de bits en el área cliente de una ventana:
Cree entre una y cuatro imágenes de mapa de bits para el botón.
Construya el objeto CBitmapButton.
Llame a la función Create para crear el control de botón de Windows y asociarlo al objeto
CBitmapButton
.Llame a la función miembro LoadBitmaps para cargar los recursos de mapa de bits después de construir el botón de mapa de bits.
Para incluir un control de botón de mapa de bits en un cuadro de diálogo:
Cree entre una y cuatro imágenes de mapa de bits para el botón.
Cree una plantilla de cuadro de diálogo con un botón dibujado por el propietario colocado donde quiere que esté el botón de mapa de bits. El tamaño del botón de la plantilla no importa.
Establezca el título del botón en un valor como "MYIMAGE" y defina un símbolo para el botón, como IDC_MYIMAGE.
En el script de recursos de la aplicación, asigne a cada una de las imágenes creadas del botón un identificador construido anexando una de las letras "U", "D", "F" o "X" (para hacia arriba, hacia abajo, centrado y deshabilitado) a la cadena usada para el título del botón en el paso 3. Para el título del botón, por ejemplo, "MYIMAGE", los identificadores serían "MYIMAGEU", "MYIMAGED", "MYIMAGEF" y "MYIMAGEX". Debe especificar el identificador de los mapas de bits entre comillas dobles. De lo contrario, el editor de recursos asignará un valor entero al recurso y MFC producirá un error al cargar la imagen.
En la clase de diálogo de la aplicación (derivada de
CDialog
), agregue un objeto miembroCBitmapButton
.En la rutina OnInitDialog del objeto
CDialog
, llame a la función AutoLoad del objetoCBitmapButton
, utilizando como parámetros el identificador de control del botón y el punterothis
del objetoCDialog
.
Si quiere controlar los mensajes de notificación de Windows, como BN_CLICKED, enviados por un control de botón de mapa de bits a su elemento principal (normalmente una clase derivada de CDialog
), agregue al objeto derivado de CDialog
una entrada de mapa de mensajes y una función miembro de controlador de mensajes para cada mensaje. Las notificaciones enviadas por un objeto CBitmapButton
son las mismas que las enviadas por un objeto CButton.
La clase CToolBar adopta un enfoque diferente para los botones de mapa de bits.
Para más información sobre CBitmapButton
, consulte Controles.
Jerarquía de herencia
CBitmapButton
Requisitos
Encabezado: afxext.h
CBitmapButton::AutoLoad
Asocia un botón de un cuadro de diálogo a un objeto de la clase CBitmapButton
, carga los mapas de bits por nombre y ajusta el tamaño del botón para adaptarse al mapa de bits.
BOOL AutoLoad(
UINT nID,
CWnd* pParent);
Parámetros
Nid
Identificador de control del botón.
pParent
Puntero al objeto que posee el botón.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Use la función AutoLoad
para inicializar un botón dibujado por el propietario en un cuadro de diálogo como un botón de mapa de bits. Las instrucciones para usar esta función se encuentran en los comentarios de la clase CBitmapButton
.
Ejemplo
CBitmapButton myButton;
// Initialize the owner-drawn button with the id IDC_MYBUTTON as a bitmap
// button. This code is used in the OnInitDialog handler of my dialog.
myButton.AutoLoad(IDC_MYBUTTON, this);
CBitmapButton::CBitmapButton
Crea un objeto CBitmapButton
.
CBitmapButton();
Comentarios
Después de crear el objeto CBitmapButton
de C++, llame a CButton::Create para crear el control de botón de Windows y asociarlo al objeto CBitmapButton
.
Ejemplo
// Declare a bitmap button object on the stack.
CBitmapButton myButton;
// Declare a bitmap button object on the heap.
CBitmapButton *pmyButton = new CBitmapButton;
CBitmapButton::LoadBitmaps
Use esta función cuando quiera cargar imágenes de mapa de bits identificadas por sus nombres de recursos o números de identificador, o cuando no pueda usar la función AutoLoad
porque, por ejemplo, vaya a crear un botón de mapa de bits que no forma parte de un cuadro de diálogo.
BOOL LoadBitmaps(
LPCTSTR lpszBitmapResource,
LPCTSTR lpszBitmapResourceSel = NULL,
LPCTSTR lpszBitmapResourceFocus = NULL,
LPCTSTR lpszBitmapResourceDisabled = NULL);
BOOL LoadBitmaps(
UINT nIDBitmapResource,
UINT nIDBitmapResourceSel = 0,
UINT nIDBitmapResourceFocus = 0,
UINT nIDBitmapResourceDisabled = 0);
Parámetros
lpszBitmapResource
Apunta a la cadena terminada en NULL que contiene el nombre del mapa de bits del estado normal o "hacia arriba" del botón de mapa de bits. Necesario.
lpszBitmapResourceSel
Apunta a la cadena terminada en NULL que contiene el nombre del mapa de bits del estado seleccionado o "hacia abajo" del botón de mapa de bits. Puede ser NULL.
lpszBitmapResourceFocus
Apunta a la cadena terminada en NULL que contiene el nombre del mapa de bits del estado centrado de un botón de mapa de bits. Puede ser NULL.
lpszBitmapResourceDisabled
Apunta a la cadena terminada en NULL que contiene el nombre del mapa de bits del estado deshabilitado de un botón de mapa de bits. Puede ser NULL.
nIDBitmapResource
Especifica el número de identificador de recurso del recurso de mapa de bits para el estado normal o "hacia arriba" del botón de mapa de bits. Necesario.
nIDBitmapResourceSel
Especifica el número de identificador de recurso del recurso de mapa de bits para el estado seleccionado o "hacia abajo" del botón de mapa de bits. Puede ser 0.
nIDBitmapResourceFocus
Especifica el número de identificador de recurso del recurso de mapa de bits para el estado centrado de un botón de mapa de bits. Puede ser 0.
nIDBitmapResourceDisabled
Especifica el número de identificador de recurso del recurso de mapa de bits para el estado deshabilitado de un botón de mapa de bits. Puede ser 0.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Ejemplo
// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
CRect(10, 10, 100, 100), pParentWnd, 1);
// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);
CBitmapButton::SizeToContent
Llame a esta función para cambiar el tamaño de un botón de mapa de bits al tamaño del mapa de bits.
void SizeToContent();
Ejemplo
CBitmapButton *pmyButton = new CBitmapButton();
// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
CRect(10, 10, 100, 100), pParentWnd, 1);
// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);
// Resize the button to be the size of the bitmaps.
pmyButton->SizeToContent();