13 Control GroupBox básico

Los GroupBoxes son un estilo de botón que se usa para agrupar controles. Generalmente se usan con controles RadioButton, pero se pueden agrupar controles de cualquier tipo.

El comportamiento es puramente estático, es decir, actúan sólo como marcas y facilitan al usuario el acceso a distintos grupos de controles asociados en función de alguna propiedad común.

Ficheros de recursos

Para comprobar cómo funcionan los groupboxes agruparemos dos conjuntos de controles edit:

#include <windows.h>
#include "win013.h"

Menu MENU
BEGIN
 POPUP "&Principal"
 BEGIN
  MENUITEM "&Diálogo", CM_DIALOGO
 END
END

DialogoPrueba DIALOG 0, 0, 145, 87
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Group boxes"
FONT 8, "Helv"
BEGIN
 CONTROL "Grupo &1", ID_GROUPBOX1, "BUTTON",
    BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP,
    8, 4, 64, 65
 CONTROL "Botón 1", ID_BOTON1, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    16, 17, 50, 14
 CONTROL "Botón 2", ID_BOTON2, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    16, 33, 50, 14
 CONTROL "Botón 3", ID_BOTON3, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    16, 49, 50, 14
 CONTROL "Grupo &2", ID_GROUPBOX2, "BUTTON",
    BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP,
    74, 4, 66, 65
 CONTROL "Botón 4", ID_BOTON4, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    81, 17, 50, 14
 CONTROL "Botón 5", ID_BOTON5, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    81, 33, 50, 14
 CONTROL "Botón 6", ID_BOTON6, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    81, 49, 50, 14
 CONTROL "Aceptar", IDOK, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP,
    16, 72, 50, 14
 CONTROL "Cancelar", IDCANCEL, "BUTTON",
    BS_PUSHBUTTON | BS_CENTER | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
    80, 72, 50, 14
END

Hemos añadido los nuevos controles GroupBox. Para más detalles acerca de estos controles ver controles button.

Como se puede observar, un Groupbox no es más que un botón con el estilo BS_GROUPBOX, la principal propiedad de los controles agrupados bajo un groupbox es que es posible moverse a través de ellos usando las teclas del cursor.

 CONTROL "Grupo &1", ID_GROUPBOX1, "button",
   BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP,
   8, 4, 64, 65
  • CONTROL es la palabra clave que indica que vamos a definir un control.
  • A continuación, en el parámetro text, en el caso de los groupbox será el texto que aparecerá en la esquina superior izquierda del control, y que servirá para identificar el grupo.
  • id es el identificador del control. El identificador será necesario en algunos casos para vincular los controles entre sí, le veremos más adelante cuando estudiemos los Radio Buttons.
  • class es la clase de control, en nuestro caso "BUTTON".
  • style es el estilo de control que queremos. En nuestro caso es una combinación de un estilo button y varios de ventana:
    • BS_GROUPBOX: Indica que se trata de un botón con el estilo GroupBox.
    • WS_CHILD: crea el control como una ventana hija.
    • WS_VISIBLE: crea una ventana inicialmente visible.
    • WS_GROUP: marca el control como comienzo de un grupo, el grupo termina cuando empiece el grupo siguiente o terminen los controles.
  • coordenada x del control.
  • coordenada y del control.
  • width: anchura del control.
  • height: altura del control.

Iniciar controles GroupBox

Los controles GroupBox no precisan inicialización.

Devolver valores a la aplicación

Tampoco hay ningún valor que retornar desde un control GroupBox.

Ejemplo 13

Nombre Fichero Fecha Tamaño Contador Descarga
Ejemplo 13 win013.zip 2004-01-18 2969 bytes 589