List box styles

Para la clase LISTBOX, pueden especificarse los siguientes estilos mediante el parámetro dwStyle:

Estilo Significado
LBS_COMBOBOX Notifica a un list box que forma parte de un combo box. Esto permite la coordinación entre los dos controles de modo que presenten una interfaz de usuario única. El propio combo box debe asignar este estilo. Si el estilo es establecido por cualquier otra cosa que no sea un combo box, el list box se considerará incorrectamente como un hijo de un combo box y se producirá un error.
LBS_DISABLENOSCROLL Muestra una barra de scroll vertical deshabilitada para el list box cuando no contiene suficientes elementos como para desplazarlos. Si no se especifica este estilo, la barra de scroll se oculta cuando el list box no contiene suficientes elementos.
LBS_EXTENDEDSEL Permite que varios elementos puedan ser seleccionados usando la tecla SHIFT y el ratón o combinaciones especiales de teclas.
LBS_HASSTRINGS

Indica que el list box contiene elementos que son cadenas. El list box mantiene la memoria y las direcciones de las cadenas, así que la aplicación puede usar el mensaje LB_GETTEXT para recuperar el texto de un elemento en particular. Por defecto, todas los list boxes, menos los owner-drawn, tienen este estilo. Se puede crear un list box de tipo owner-drawn tanto con o sin este estilo.

LBS_MULTICOLUMN Indica un list box multicolumna que es desplazado horizontalmente. El mensaje LB_SETCOLUMNWIDTH ajusta en ancho de las columnas.
LBS_MULTIPLESEL Cambia la selección de cada cadena, cada vez que el usuario hace click o doble click sobre una cadena del list box. El usuario puede seleccionar cualquier número de elementos.
LBS_NODATA
Obsoleto

Indica que es un list box sin datos. Debe especificarse este estilo cuando el número de elementos pueda exceder de mil. Una lista de este tipo debe tener también el estilo LBS_OWNERDRAWFIXED, pero no debe tener los estilos LBS_SORT o LBS_HASSTRINGS.

Un list box no-data se parece a un list box owner-drawn excepto que no contiene cadenas o mapas de bits para cada elemento. Los comandos para añadir, insertar o borrar un elemento ignorarán cualquier dato del elemento; peticiones para encontrar una cadena en el interior del list box siempre fallarán. Windows envía el mensaje WM_DRAWITEM a la ventana padre cuando un elemento deba ser mostrado.

Se pasará el miembro itemID de la estructura DRAWITEMSTRUCT junto con el mensaje WM_DRAWITEM para especificar el número de línea del elemento a mostrar. Un list box no-data envía el mensaje WM_DELETEITEM.

LBS_NOINTEGRALHEIGHT

Especifica que el tamaño del list box es exactamente el indicado por la aplicación cuando se creó el list box. Normalmente, Windows cambia el tamaño del list box para que no se muestren trozos de líneas.

LBS_NOREDRAW Indica que la apariencia del list box no se actualiza cuando se hagan cambios. Se puede cambiar este estilo en cualquier momento enviando un mensaje WM_SETREDRAW.
LBS_NOSEL Especifica qu el list box contiene ítems que pueden ser vistos, pero no seleccionados.
LBS_NOTIFY Informa a la ventana padre con un mensaje de entrada cada vez que el usuario hace click o doble click sobre una cadena del list box.
LBS_OWNERDRAWFIXED

Especifica que el padre del list box es el responsable de actualizar su contenido en pantalla y de que los elementos del list box sean todos de la misma altura. La ventana padre recibirá el mensaje WM_MEASUREITEM cuando el list box sea creado y el mensaje WM_DRAWITEM cuando algún aspecto visual del list box haya cambiado.

LBS_OWNERDRAWVARIABLE

Especifica que el propietario del list box es el responsable de dibujar su contenido y que los elementos del list box tienen altura variable. La ventana padre recibirá un mensaje WM_MEASUREITEM para cada elemento del list box cuando el list box sea creado; y un mensaje WM_DRAWITEM cuando algún aspecto visual del list box haya cambiado.

LBS_SORT

Ordena alfabéticamente las cadenas en el list box.

LBS_STANDARD Ordena alfabéticamente las cadenas en el list box. La ventana padre recibe in mensaje de entrada cada vez que el usuario hacer click o doble click sobre una cadena. El list box tiene bordes en todos sus lados.
LBS_USETABSTOPS Permite al list box reconocer y expandir los caracteres tab cuando muestra cadenas. Por defecto, las posiciones de los tabs son 32 unidades de cuadro de diálogo. Una unidad de cuadro de diálogo es una distancia vertical u horizontal. Una unidad de cuadro de diálogo horizontal es un cuarto de la unidad básica de anchura del cuadro de diálogo actual. Windows calcula estas unidades basándose en la altura y anchura de la fuente de caracteres de sistema actual. la función GetDialogBaseUnits devuelve las unidades base actuales del cuadro de diálogo en pixels.
LBS_WANTKEYBOARDINPUT Indica que la ventana padre del list box recibe mensajes WM_VKEYTOITEM cada vez que el usuario presiona una tecla y el list box tiene el foco de entrada. Esto permite a la aplicación realizar un procesamiento especial del teclado.