Estados del control Button
En esta sección se describe cómo la selección de un botón cambia su estado y cómo debe responder la aplicación.
La sección consta de los temas siguientes:
Selección de botones
El usuario puede seleccionar un botón de tres maneras: haciendo clic en él con el mouse, presionando con tabulación y presionando la tecla ENTRAR, o (si el botón forma parte de un grupo definido por el estilo WS_GROUP ) mediante tabulación en el botón seleccionado del grupo y usando las teclas de dirección para moverse dentro de ese grupo. Los dos métodos de tabulación forman parte de la interfaz de teclado predefinida proporcionada por el sistema. Para obtener una descripción completa de esta interfaz, vea Cuadros de diálogo.
Al seleccionar un botón normalmente se producen los siguientes eventos:
- El sistema proporciona el botón que el foco del teclado.
- El botón envía a su ventana primaria un mensaje para notificarle la selección.
- La ventana primaria (o el sistema) envía el botón un mensaje para cambiar su estado.
- La ventana primaria (o el sistema) vuelve a dibujar el botón para reflejar su nuevo estado.
Elementos de un estado de botón
El estado de un botón se puede caracterizar por su estado de enfoque, estado de inserción y estado de comprobación.
Estado del foco
El estado de foco se aplica a una casilla, un botón de radio, un botón de inserción o un botón dibujado por el propietario. Un botón recibe el foco del teclado cuando el usuario lo selecciona y pierde el foco cuando el usuario selecciona otro control. Solo un control puede tener el foco del teclado a la vez.
Cuando un botón tiene el foco del teclado, el sistema suele resaltar el texto, el icono o el mapa de bits de un botón rodeando con una línea de puntos. Además, un botón de pulsación tiene un borde oscuro pesado cuando tiene el foco. El sistema cambia automáticamente el resaltado de un botón automático, pero la aplicación debe cambiar el resaltado de un botón no automático enviando mensajes.
Estado de inserción
El estado de inserción se aplica a un botón de inserción, casilla, botón de radio o casilla de tres estados, pero no se aplica a otros botones. El estado de inserción de un botón se puede insertar o no insertar. Cuando se inserta un botón de inserción (o cualquier botón con el estilo BS_PUSHLIKE ), el botón se dibuja como un botón hundido. Cuando no se inserta, se dibuja como un botón elevado. Cuando se hace clic en una casilla de verificación, un botón de radio o una casilla de tres estados, el fondo del botón está atenuado. Cuando no se inserta, el fondo del botón no está atenuado.
Comprobar estado
El estado de verificación se aplica a una casilla de verificación, un botón de radio o una casilla de tres estados, pero no se aplica a otros botones. El estado se puede activar, desactivar o (para las casillas de tres estados) indeterminado. Se activa una casilla cuando contiene una marca de verificación y se desactiva cuando no lo hace. Se comprueba un botón de radio cuando contiene un punto negro; se borra cuando no lo hace. Una casilla de verificación de tres estados se activa cuando contiene una marca de verificación, se desactiva cuando no lo hace y está indeterminada cuando contiene un cuadro atenuado. El sistema cambia automáticamente el estado de comprobación de un botón automático, pero la aplicación debe cambiar el estado de comprobación de un botón no automático.
Cambios en un estado de botón
Cuando el usuario selecciona un botón, generalmente es necesario cambiar uno o varios de los elementos de estado del botón. El sistema cambia automáticamente el estado de foco de todos los tipos de botón, el estado de inserción de botones o botones con el estilo BS_PUSHLIKE y el estado de comprobación de todos los botones automáticos. La aplicación debe realizar todos los demás cambios de estado, teniendo en cuenta el tipo, el estilo y el estado actual del botón. En la lista siguiente se muestran los elementos de estado que se deben cambiar para cada tipo de botón:
- Una casilla debe cambiar el estado de comprobación.
- Un botón de radio debe cambiar el estado de comprobación. También puede ser necesario cambiar el estado de comprobación de otros botones de radio del mismo grupo para garantizar la naturaleza mutuamente excluyente de los botones de radio.
- Dado que el estado de un botón dibujado por el propietario depende de la aplicación, lo que la aplicación debe cambiar en el botón puede variar. No se debe cambiar ningún elemento de un cuadro de grupo, ya que los usuarios no pueden seleccionar cuadros de grupo.
Una aplicación puede determinar el estado de un botón mediante el envío de un mensaje de BM_GETCHECK o BM_GETSTATE ; La aplicación puede establecer el estado de un botón mediante el envío de un mensaje de BM_SETCHECK o BM_SETSTATE .