Partager via


Styles de zone de liste

Pour créer une zone de liste à l’aide de la fonction CreateWindow ou CreateWindowEx, utilisez la classe LISTBOX, les constantes de style de fenêtre appropriées et les constantes de style suivantes afin de définir la zone de liste. Une fois le contrôle créé, ces styles ne peuvent pas être modifiés, sauf indication contraire.

Constant Description
LBS_COMBOBOX
Notifie une zone de liste qu’elle fait partie d’une zone de liste modifiable. Cela permet la coordination entre les deux contrôles pour qu’ils présentent une IU unifiée. La zone de liste modifiable elle-même doit définir ce style. Si le style est défini par tout autre chose que la zone de liste modifiable, la zone de liste se considère à tort comme un enfant d’une zone de liste modifiable, ce qui entraîne un échec.
LBS_DISABLENOSCROLL
Affiche une barre de défilement horizontale ou verticale désactivée quand la zone de liste ne contient pas suffisamment d’éléments à faire défiler. Si vous ne spécifiez pas ce style, la barre de défilement est masquée quand la zone de liste ne contient pas suffisamment d’éléments. Ce style doit être utilisé avec le style WS_VSCROLL ou WS_HSCROLL.
LBS_EXTENDEDSEL
Permet de sélectionner plusieurs éléments à l’aide de la touche Maj et de la souris ou de combinaisons de touches spéciales.
LBS_HASSTRINGS
Spécifie qu’une zone de liste contient des éléments constitués de chaînes. La zone de liste conserve la mémoire et les adresses des chaînes afin que l’application puisse utiliser le message LB_GETTEXT pour récupérer le texte d’un élément particulier. Par défaut, toutes les zones de liste, à l’exception des zones de liste dessinées par le propriétaire, ont ce style. Vous pouvez créer une zone de liste dessinée par le propriétaire avec ou sans ce style.
Pour les zones de liste dessinées par le propriétaire sans ce style, le message LB_GETTEXT récupère la valeur associée à un élément (les données d’élément).
LBS_MULTICOLUMN
Spécifie une zone de liste multicolonne qui défile horizontalement. La zone de liste calcule automatiquement la largeur des colonnes, ou une application peut définir la largeur à l’aide du message LB_SETCOLUMNWIDTH. Si une zone de liste a le style LBS_OWNERDRAWFIXED, une application peut définir la largeur au moment où la zone de liste envoie le message WM_MEASUREITEM.
Une zone de liste ayant le style LBS_MULTICOLUMN ne peut pas défiler verticalement. Elle ignore les messages WM_VSCROLL qu’elle reçoit.
Les styles LBS_MULTICOLUMN et LBS_OWNERDRAWVARIABLE ne peuvent pas être combinés. Si les deux sont spécifiés, LBS_OWNERDRAWVARIABLE est ignoré.
LBS_MULTIPLESEL
Active ou désactive la sélection de chaînes chaque fois que l’utilisateur clique ou double-clique sur une chaîne dans la zone de liste. L’utilisateur peut sélectionner un nombre illimité de chaînes.
LBS_NODATA
Spécifie une zone de liste sans données. Spécifiez ce style lorsque le nombre d'éléments dans la zone de liste dépasse 1000. Une zone de liste sans données doit également avoir le style LBS_OWNERDRAWFIXED, mais pas le style LBS_SORT ou LBS_HASSTRINGS.
Une zone de liste sans données s'apparente à une zone de liste personnalisée par son propriétaire sauf qu'elle ne contient aucune chaîne ou donnée bitmap d'un élément. Les commandes permettant d’ajouter, d’insérer ou de supprimer un élément ignorent toujours les données d’élément spécifiées. Les demandes de recherche d’une chaîne dans la zone de liste échouent toujours. Le système envoie le message WM_DRAWITEM à la fenêtre propriétaire quand un élément doit être dessiné. Le membre itemID de la structure DRAWITEMSTRUCT passée avec le message WM_DRAWITEM spécifie le numéro de ligne de l’élément à dessiner. Une zone de liste sans données n’envoie pas de message WM_DELETEITEM.
LBS_NOINTEGRALHEIGHT
Spécifie que la taille de la zone de liste correspond exactement à la taille spécifiée par l’application quand elle a créé la zone de liste. En règle générale, le système dimensionne une zone de liste pour qu’elle n’affiche pas d’éléments partiels.
Pour les zones de liste ayant le style LBS_OWNERDRAWVARIABLE, le style LBS_NOINTEGRALHEIGHT est toujours appliqué.
LBS_NOREDRAW
Spécifie que l’apparence de la zone de liste n’est pas mise à jour quand des changements sont apportés.
Pour changer l’état dans lequel le contrôle est redessiné, utilisez le message WM_SETREDRAW.
LBS_NOSEL
Spécifie que la zone de liste contient des éléments qui peuvent être visualisés mais pas sélectionnés.
LBS_NOTIFY
Oblige la zone de liste à envoyer un code de notification à la fenêtre parente chaque fois que l’utilisateur clique sur un élément de zone de liste (LBN_SELCHANGE), double-clique sur un élément (LBN_DBLCLK) ou annule la sélection (LBN_SELCANCEL).
LBS_OWNERDRAWFIXED
Spécifie que le propriétaire de la zone de liste est responsable du dessin de son contenu, et que les éléments de la zone de liste ont la même hauteur. La fenêtre propriétaire reçoit un message WM_MEASUREITEM quand la zone de liste est créée, et un message WM_DRAWITEM quand un aspect visuel de la zone de liste a changé.
LBS_OWNERDRAWVARIABLE
Spécifie que le propriétaire de la zone de liste est responsable du dessin de son contenu, et que les éléments de la zone de liste ont une hauteur variable. La fenêtre propriétaire reçoit un message WM_MEASUREITEM pour chaque élément de la zone quand la zone de liste est créée, et un message WM_DRAWITEM quand un aspect visuel de la zone de liste a changé.
Ce style entraîne l’activation du style LBS_NOINTEGRALHEIGHT.
Ce style est ignoré si le style LBS_MULTICOLUMN est spécifié.
LBS_SORT
Trie les chaînes de la zone de liste par ordre alphabétique.
LBS_STANDARD
Trie les chaînes de la zone de liste par ordre alphabétique. La fenêtre parente reçoit un code de notification chaque fois que l’utilisateur clique sur un élément de zone de liste, double-clique sur un élément ou annule la sélection. La zone de liste a une barre de défilement verticale ainsi que des bordures de tous les côtés. Ce style combine les styles LBS_NOTIFY, LBS_SORT, WS_VSCROLL et WS_BORDER.
LBS_USETABSTOPS
Permet à une zone de liste de reconnaître et de développer les caractères de tabulation quand elle dessine ses chaînes. Vous pouvez utiliser le message LB_SETTABSTOPS pour spécifier les positions des taquets de tabulation. Les positions de tabulation par défaut sont séparées par 32 unités de modèle de boîte de dialogue. Les unités de modèle de boîte de dialogue sont des unités indépendantes de l’appareil utilisées dans les modèles de boîte de dialogue. Pour convertir les mesures des unités de modèle de boîte de dialogue en unités d’écran (pixels), utilisez la fonction MapDialogRect.
LBS_WANTKEYBOARDINPUT
Spécifie que le propriétaire de la zone de liste reçoit les messages WM_VKEYTOITEM chaque fois que l’utilisateur appuie sur une touche et que la zone de liste a le focus d’entrée. Cela permet à une application d’effectuer un traitement spécial sur l’entrée au clavier.

Spécifications

Condition requise Value
En-tête
Winuser.h