Estilos de cuadro de lista

Para crear un cuadro de lista mediante la función CreateWindow o CreateWindowEx, use la clase LISTBOX, las constantes de estilo de ventana adecuadas y las siguientes constantes de estilo para definir el cuadro de lista. Una vez creado el control, estos estilos no pueden modificarse, salvo en los casos indicados.

Constante Descripción
LBS_COMBOBOX
Notifica a un cuadro de lista que forma parte de un cuadro combinado. Esto permite la coordinación entre los dos controles para que presenten una interfaz de usuario unificada. El propio cuadro combinado debe establecer este estilo. Si cualquier cosa que no sea el cuadro combinado establece el estilo, el cuadro de lista se considerará incorrectamente como elemento secundario de un cuadro combinado y se producirá un error.
LBS_DISABLENOSCROLL
Muestra una barra de desplazamiento horizontal o vertical deshabilitada cuando el cuadro de lista no contiene suficientes elementos para desplazarse. Si no especifica este estilo, la barra de desplazamiento se oculta cuando el cuadro de lista no contiene suficientes elementos. Este estilo debe usarse con el estilo WS_VSCROLL o WS_HSCROLL.
LBS_EXTENDEDSEL
Permite seleccionar varios elementos utilizando la tecla MAYÚS y el mouse o combinaciones de teclas especiales.
LBS_HASSTRINGS
Especifica que un cuadro de lista contiene elementos que constan de cadenas. El cuadro de lista mantiene la memoria y las direcciones de las cadenas para que la aplicación pueda usar el mensaje de LB_GETTEXT para recuperar el texto de un elemento determinado. De forma predeterminada, todos los cuadros de lista, excepto los dibujados por el propietario, tienen este estilo. Puede crear un cuadro de lista dibujado por el propietario con o sin este estilo.
Para los cuadros de lista dibujados por el propietario sin este estilo, el mensaje LB_GETTEXT recupera el valor asociado a un elemento (los datos del elemento).
LBS_MULTICOLUMN
Especifica un cuadro de lista de varias columnas con desplazamiento horizontal. El cuadro de lista calcula automáticamente el ancho de las columnas, o una aplicación puede establecer el ancho mediante el mensaje LB_SETCOLUMNWIDTH. Si un cuadro de lista tiene el estilo LBS_OWNERDRAWFIXED, una aplicación puede establecer el ancho cuando el cuadro de lista envía el mensaje WM_MEASUREITEM.
Un cuadro de lista con el estilo LBS_MULTICOLUMN no puede desplazarse verticalmente y omite los mensajes WM_VSCROLL que recibe.
Los estilos LBS_MULTICOLUMN y LBS_OWNERDRAWVARIABLE no se pueden combinar. Si se especifican ambos, se omite LBS_OWNERDRAWVARIABLE.
LBS_MULTIPLESEL
Activa o desactiva la selección de cadenas cada vez que el usuario hace clic o doble clic en una cadena del cuadro de lista. El usuario puede seleccionar cualquier número de cadenas.
LBS_NODATA
Especifica un cuadro de lista sin datos. Especifique este estilo cuando el recuento de elementos del cuadro de lista supere los mil. Un cuadro de lista sin datos también debe tener el estilo LBS_OWNERDRAWFIXED, pero no debe tener el estilo LBS_SORT o LBS_HASSTRINGS.
Un cuadro de lista sin datos se parece a un cuadro de lista dibujado por el propietario, excepto que no contiene datos de cadena o mapa de bits para un elemento. Los comandos para agregar, insertar o eliminar un elemento siempre omiten cualquier dato de un elemento especificado; siempre se produce un error en las solicitudes para buscar una cadena dentro del cuadro de lista. El sistema envía el mensaje WM_DRAWITEM a la ventana del propietario cuando se debe dibujar un elemento. El miembro itemID de la estructura de drawITEMSTRUCT pasada con el mensaje de WM_DRAWITEM especifica el número de línea del elemento que se va a dibujar. Un cuadro de lista sin datos no envía un mensaje de WM_DELETEITEM.
LBS_NOINTEGRALHEIGHT
Especifica que el tamaño del cuadro de lista es exactamente el que especificó la aplicación al crearlo. Normalmente, el sistema cambia el tamaño de un cuadro de lista para que no muestre elementos parciales.
Para los cuadros de lista con el estilo LBS_OWNERDRAWVARIABLE, siempre se aplica el estilo LBS_NOINTEGRALHEIGHT.
LBS_NOREDRAW
Especifica que la apariencia del cuadro de lista no se actualiza cuando se realizan cambios.
Para cambiar el estado de volver a dibujar del control, use el mensaje WM_SETREDRAW.
LBS_NOSEL
Especifica que el cuadro de lista contiene elementos que se pueden ver pero no seleccionar.
LBS_NOTIFY
Hace que el cuadro de lista envíe un código de notificación a la ventana primaria siempre que el usuario haga clic en un elemento de cuadro de lista (LBN_SELCHANGE), haga doble clic en un elemento (LBN_DBLCLK) o cancele la selección (LBN_SELCANCEL).
LBS_OWNERDRAWFIXED
Especifica que el propietario del cuadro de lista es responsable de dibujar su contenido y que los elementos del cuadro de lista tienen la misma altura. La ventana del propietario recibe un mensaje de WM_MEASUREITEM cuando se crea el cuadro de lista y un mensaje de WM_DRAWITEM cuando ha cambiado un aspecto visual del cuadro de lista.
LBS_OWNERDRAWVARIABLE
Especifica que el propietario del cuadro de lista es responsable de dibujar su contenido y que los elementos del cuadro de lista son de altura variable. La ventana del propietario recibe un mensaje de WM_MEASUREITEM para cada elemento del cuadro cuando se crea el cuadro de lista y un mensaje de WM_DRAWITEM cuando ha cambiado un aspecto visual del cuadro de lista.
Este estilo hace que se habilite el estilo LBS_NOINTEGRALHEIGHT.
Este estilo se omite si se especifica el estilo LBS_MULTICOLUMN.
LBS_SORT
Ordena las cadenas en el cuadro de lista alfabéticamente.
LBS_STANDARD
Ordena las cadenas en el cuadro de lista alfabéticamente. La ventana primaria recibe un código de notificación cada vez que el usuario hace clic en un elemento de cuadro de lista, hace doble clic en un elemento o cancela la selección. El cuadro de lista tiene una barra de desplazamiento vertical y tiene bordes en todos los lados. Este estilo combina los estilos LBS_NOTIFY, LBS_SORT, WS_VSCROLL y WS_BORDER.
LBS_USETABSTOPS
Permite que un cuadro de lista reconozca y expanda caracteres de tabulación al dibujar sus cadenas. Puede usar el mensaje LB_SETTABSTOPS para especificar las posiciones de tabulación. Las posiciones de tabulación predeterminadas están separadas por 32 unidades de plantilla de diálogo. Las unidades de plantilla de diálogo son las unidades independientes del dispositivo que se usan en las plantillas del cuadro de diálogo. Para convertir medidas de unidades de plantilla de cuadro de diálogo en unidades de pantalla (píxeles), use la función MapDialogRect.
LBS_WANTKEYBOARDINPUT
Especifica que el propietario del cuadro de lista recibe mensajes de WM_VKEYTOITEM cada vez que el usuario presiona una tecla y el cuadro de lista tiene el foco de entrada. Esto permite a una aplicación realizar un procesamiento especial en la entrada del teclado.

Requisitos

Requisito Valor
Encabezado
Winuser.h