Estilos de botón

Especifica una combinación de estilos de botón. Si crea un botón mediante la clase BUTTON con la función CreateWindow o CreateWindowEx , puede especificar cualquiera de los estilos de botón que se enumeran a continuación.

Ejemplo

HRESULT Button::CreateText(HWND hParent, const TCHAR *szCaption, int nID, 
                               const Rect& rcBound)
{
    CREATESTRUCT create;
	ZeroMemory(&create, sizeof(CREATESTRUCT));

    create.x = rcBound.left;
    create.y = rcBound.top;
    create.cx = rcBound.right - create.x;
    create.cy = rcBound.bottom - create.y;

    create.hwndParent = hParent;
    create.lpszName = szCaption;
    create.hMenu = (HMENU)(INT_PTR)nID;
    create.lpszClass = TEXT("BUTTON");
    create.style = BS_PUSHBUTTON | BS_FLAT;
    return Control::Create(create);
}

Ejemplo tomado del directorio Windows Classic Samples de GitHub.

Constantes

Constante Descripción
BS_3STATE
Crea un botón que es el mismo que una casilla, salvo que la casilla puede estar atenuada, así como activada o desactivada. Use el estado atenuado para mostrar que el estado de la casilla no está determinado.
BS_AUTO3STATE
Crea un botón que es el mismo que una casilla de tres estados, salvo que la casilla cambia su estado cuando el usuario la selecciona. El estado pasa por activado, indeterminado y borrado.
BS_AUTOCHECKBOX
Crea un botón que es el mismo que una casilla, salvo que el estado de verificación se alterna automáticamente entre activado y desactivado cada vez que el usuario activa la casilla.
BS_AUTORADIOBUTTON
Crea un botón que es el mismo que un botón de radio, excepto que cuando el usuario lo selecciona, el sistema establece automáticamente el estado de comprobación del botón en activado y establece automáticamente el estado de comprobación para todos los demás botones del mismo grupo en borrar.
BS_BITMAP
Especifica que el botón muestra un mapa de bits. Consulte la sección Comentarios para obtener su interacción con BS_ICON.
BS_BOTTOM
Coloca el texto en la parte inferior del rectángulo del botón.
BS_CENTER
Centra el texto horizontalmente en el rectángulo del botón.
BS_CHECKBOX
Crea una casilla pequeña y vacía con texto. De forma predeterminada, el texto se muestra a la derecha de la casilla. Para mostrar el texto a la izquierda de la casilla, combine esta marca con el estilo BS_LEFTTEXT (o con el estilo BS_RIGHTBUTTON equivalente).
BS_COMMANDLINK
Crea un botón de vínculo de comando que se comporta como un botón de estilo BS_PUSHBUTTON, pero el botón de vínculo de comando tiene una flecha verde a la izquierda que apunta al texto del botón. Se puede establecer un subtítulo para el texto del botón enviando el mensaje BCM_SETNOTE al botón.
BS_DEFCOMMANDLINK
Crea un botón de vínculo de comando que se comporta como un botón de estilo BS_PUSHBUTTON. Si el botón está en un cuadro de diálogo, el usuario puede seleccionar el botón de vínculo de comando presionando la tecla ENTRAR, incluso cuando el botón de vínculo de comando no tiene el foco de entrada. Este estilo es útil para permitir que el usuario seleccione rápidamente la opción más probable (predeterminada).
BS_DEFPUSHBUTTON
Crea un botón de inserción que se comporta como un botón de estilo BS_PUSHBUTTON, pero tiene una apariencia distinta. Si el botón está en un cuadro de diálogo, el usuario puede seleccionar el botón presionando la tecla ENTRAR, incluso cuando el botón no tiene el foco de entrada. Este estilo es útil para permitir que el usuario seleccione rápidamente la opción más probable (predeterminada).
BS_DEFSPLITBUTTON
Crea un botón de división que se comporta como un botón de estilo BS_PUSHBUTTON, pero también tiene un aspecto distintivo. Si el botón de división está en un cuadro de diálogo, el usuario puede seleccionar el botón de división presionando la tecla ENTRAR, incluso cuando el botón de división no tiene el foco de entrada. Este estilo es útil para permitir que el usuario seleccione rápidamente la opción más probable (predeterminada).
BS_GROUPBOX
Crea un rectángulo en el que se pueden agrupar otros controles. Cualquier texto asociado a este estilo se muestra en la esquina superior izquierda del rectángulo.
BS_ICON
Especifica que el botón muestra un icono. Consulte la sección Comentarios para obtener su interacción con BS_BITMAP.
BS_FLAT
Especifica que el botón es bidimensional; no usa el sombreado predeterminado para crear una imagen 3D.
BS_LEFT
A la izquierda se justifica el texto en el rectángulo del botón. Sin embargo, si el botón es una casilla o un botón de radio que no tiene el estilo BS_RIGHTBUTTON, el texto se justifica a la izquierda en el lado derecho de la casilla o el botón de radio.
BS_LEFTTEXT
Coloca texto en el lado izquierdo del botón de radio o casilla cuando se combina con un botón de radio o un estilo de casilla. Igual que el estilo BS_RIGHTBUTTON.
BS_MULTILINE
Ajusta el texto del botón en varias líneas si la cadena de texto es demasiado larga para caber en una sola línea del rectángulo del botón.
BS_NOTIFY
Permite que un botón envíe BN_KILLFOCUS y BN_SETFOCUS códigos de notificación a su ventana primaria.
Tenga en cuenta que los botones envían el código de notificación BN_CLICKED independientemente de si tiene este estilo. Para obtener BN_DBLCLK códigos de notificación, el botón debe tener el estilo BS_RADIOBUTTON o BS_OWNERDRAW.
BS_OWNERDRAW
Crea un botón dibujado por el propietario. La ventana del propietario recibe un mensaje de WM_DRAWITEM cuando ha cambiado un aspecto visual del botón. No combine el estilo BS_OWNERDRAW con ningún otro estilo de botón.
BS_PUSHBUTTON
Crea un botón de inserción que publica un mensaje de WM_COMMAND en la ventana del propietario cuando el usuario selecciona el botón.
BS_PUSHLIKE
Hace que un botón (como una casilla de verificación, una casilla de tres estados o un botón de radio) tenga un aspecto y actúe como un botón de inserción. El botón se muestra elevado cuando no se inserta ni se activa y se activa cuando se inserta o se activa.
BS_RADIOBUTTON
Crea un círculo pequeño con texto. De forma predeterminada, el texto se muestra a la derecha del círculo. Para mostrar el texto a la izquierda del círculo, combine esta marca con el estilo BS_LEFTTEXT (o con el estilo BS_RIGHTBUTTON equivalente). Use botones de radio para grupos de opciones relacionadas, pero mutuamente excluyentes.
BS_RIGHT
Justifica el texto con el botón derecho en el rectángulo del botón. Sin embargo, si el botón es una casilla o un botón de radio que no tiene el estilo BS_RIGHTBUTTON, el texto se justifica a la derecha en el lado derecho de la casilla o el botón de radio.
BS_RIGHTBUTTON
Coloca el círculo de un botón de radio o el cuadrado de una casilla en el lado derecho del rectángulo del botón. Igual que el estilo BS_LEFTTEXT.
BS_SPLITBUTTON
Crea un botón de expansión. Un botón de división tiene una flecha desplegable.
BS_TEXT
Especifica que el botón muestra texto.
BS_TOP
Coloca el texto en la parte superior del rectángulo del botón.
BS_TYPEMASK
No use este estilo. Bit de estilo compuesto resultante del uso del operador OR en bits de estilo BS_*. Se puede usar para enmascarar bits válidos de BS_* de una máscara de bits determinada. Tenga en cuenta que esto no está actualizado y no incluye correctamente todos los estilos válidos. Por lo tanto, no debe usar este estilo.
BS_USERBUTTON
Obsoleto, pero se proporciona por compatibilidad con las versiones de 16 bits de Windows. Las aplicaciones deben usar BS_OWNERDRAW en su lugar.
BS_VCENTER
Coloca el texto en el medio (verticalmente) del rectángulo del botón.

Comentarios

Para obtener ilustraciones de los estilos de botón principal, como BS_CHECKBOX y BS_GROUPBOX, vea Tipos de botón.

La apariencia del texto o un icono o ambos en un control de botón depende de los estilos de BS_ICON y BS_BITMAP, y de si se envía el mensaje de BM_SETIMAGE . Los posibles resultados son los siguientes.

BS_ICON o BS_BITMAP establecer? BM_SETIMAGE llamado? Resultado
Mostrar solo icono.
No Mostrar icono y texto.
No Mostrar solo texto.
No No Mostrar solo texto

Requisitos

Requisito Value
Encabezado
Winuser.h