Partager via


Structure LVITEMW (commctrl.h)

Spécifie ou reçoit les attributs d’un élément list-view. Cette structure a été mise à jour pour prendre en charge une nouvelle valeur de masque (LVIF_INDENT) qui permet la mise en retrait des éléments. Cette structure remplace la structure LV_ITEM .

Syntaxe

typedef struct tagLVITEMW {
  UINT   mask;
  int    iItem;
  int    iSubItem;
  UINT   state;
  UINT   stateMask;
  LPWSTR pszText;
  int    cchTextMax;
  int    iImage;
  LPARAM lParam;
  int    iIndent;
  int    iGroupId;
  UINT   cColumns;
  PUINT  puColumns;
  int    *piColFmt;
  int    iGroup;
} LVITEMW, *LPLVITEMW;

Membres

mask

Type : UINT

Ensemble d’indicateurs qui spécifient quels membres de cette structure contiennent des données à définir ou quels membres sont demandés. Un ou plusieurs des indicateurs suivants peuvent être définis pour ce membre :

Valeur Signification
LVIF_COLFMT
Windows Vista et versions ultérieures. Le membre piColFmt est valide ou doit être défini. Si cet indicateur est utilisé, le membre cColumns est valide ou doit être défini.
LVIF_COLUMNS
Le membre cColumns est valide ou doit être défini.
LVIF_DI_SETITEM
Le système d’exploitation doit stocker les informations d’élément de liste demandées et ne pas les demander à nouveau. Cet indicateur est utilisé uniquement avec le code de notification LVN_GETDISPINFO .
LVIF_GROUPID
Le membre iGroupId est valide ou doit être défini. Si cet indicateur n’est pas défini lorsqu’un message LVM_INSERTITEM est envoyé, la valeur d’iGroupId est supposée être I_GROUPIDCALLBACK.
LVIF_IMAGE
Le membre iImage est valide ou doit être défini.
LVIF_INDENT
Le membre iIndent est valide ou doit être défini.
LVIF_NORECOMPUTE
Le contrôle ne génère pas de LVN_GETDISPINFO pour récupérer des informations texte s’il reçoit un message LVM_GETITEM . Au lieu de cela, le membre pszText contiendra LPSTR_TEXTCALLBACK.
LVIF_PARAM
Le membre lParam est valide ou doit être défini.
LVIF_STATE
Le membre d’état est valide ou doit être défini.
LVIF_TEXT
Le membre pszText est valide ou doit être défini.

iItem

Type : int

Index de base zéro de l’élément auquel cette structure fait référence.

iSubItem

Type : int

Index de base unique du sous-élément auquel cette structure fait référence, ou zéro si cette structure fait référence à un élément plutôt qu’à un sous-élément.

state

Type : UINT

Indique l’état, l’image d’état et l’image de superposition de l’élément. Le membre stateMask indique les bits valides de ce membre.

Les bits 0 à 7 de ce membre contiennent les indicateurs d’état d’élément. Il peut s’agir d’une ou plusieurs des valeurs d’état d’élément .

Les bits 8 à 11 de ce membre spécifient l’index d’image de superposition à base unique. La liste d’images d’icônes de taille réelle et la petite liste d’images d’icône peuvent avoir des images superposées. L’image de superposition est superposée à l’image d’icône de l’élément. Si ces bits sont zéro, l’élément n’a aucune image de superposition. Pour isoler ces bits, utilisez le masque LVIS_OVERLAYMASK . Pour définir l’index d’image de superposition dans ce membre, vous devez utiliser la macro INDEXTOOVERLAYMASK . Les images superposées de la liste d’images sont définies avec la fonction ImageList_SetOverlayImage .

Les bits 12 à 15 de ce membre spécifient l’index d’image d’état. L’image d’état s’affiche en regard de l’icône d’un élément pour indiquer un état défini par l’application. Si ces bits sont zéro, l’élément n’a pas d’image d’état. Pour isoler ces bits, utilisez le masque LVIS_STATEIMAGEMASK . Pour définir l’index d’image d’état, utilisez la macro INDEXTOSTATEIMAGEMASK . L’index d’image d’état spécifie l’index de l’image dans la liste d’images d’état qui doit être dessinée. La liste d’images d’état est spécifiée avec le message LVM_SETIMAGELIST .

stateMask

Type : UINT

Valeur spécifiant les bits du membre d’état qui seront récupérés ou modifiés. Par exemple, si vous définissez ce membre sur LVIS_SELECTED , seul l’état de sélection de l’élément est récupéré.

Ce membre vous permet de modifier un ou plusieurs états d’élément sans avoir à récupérer d’abord tous les états de l’élément. Par exemple, le fait de définir ce membre sur LVIS_SELECTED et l’état sur zéro entraîne l’effacement de l’état de sélection de l’élément, mais aucun des autres états n’est affecté.

Pour récupérer ou modifier tous les états, définissez ce membre sur (UINT)-1.

Vous pouvez utiliser la macro ListView_SetItemState à la fois pour définir et effacer des bits.

pszText

Type : LPTSTR

Si la structure spécifie des attributs d’élément, pszText est un pointeur vers une chaîne terminée par null contenant le texte de l’élément. Lorsque vous répondez à une notification LVN_GETDISPINFO , assurez-vous que ce pointeur reste valide jusqu’à la réception de la notification suivante.

Si la structure reçoit des attributs d’élément, pszText est un pointeur vers une mémoire tampon qui reçoit le texte de l’élément. Notez que bien que le contrôle list-view autorise le stockage d’une chaîne de longueur en tant que texte d’élément, seuls les 260 premiers TCHARs’affichent.

Si la valeur de pszText est LPSTR_TEXTCALLBACK, l’élément est un élément de rappel. Si le texte de rappel change, vous devez explicitement définir pszText sur LPSTR_TEXTCALLBACK et notifier le contrôle list-view de la modification en envoyant un message LVM_SETITEM ou LVM_SETITEMTEXT .

Ne définissez pas pszText sur LPSTR_TEXTCALLBACK si le contrôle list-view a le style LVS_SORTASCENDING ou LVS_SORTDESCENDING .

cchTextMax

Type : int

Nombre de TCHARdans la mémoire tampon pointée vers pszText, y compris la valeur NULL de fin.

Ce membre est utilisé uniquement lorsque la structure reçoit des attributs d’élément. Il est ignoré lorsque la structure spécifie des attributs d’élément. Par exemple, cchTextMax est ignoré pendant LVM_SETITEM et LVM_INSERTITEM. Il est en lecture seule pendant LVN_GETDISPINFO et d’autres notifications LVN_.

Note Ne copiez jamais plus de cchTextMaxTCHAR(oùcchTextMax inclut la valeur NULL de fin) dans pszText pendant une notification de LVN_, sinon votre programme risque d’échouer.
 

iImage

Type : int

Index de l’icône de l’élément dans la liste d’images du contrôle. Cela s’applique à la grande et à la petite liste d’images. Si ce membre est la valeur I_IMAGECALLBACK, la fenêtre parente est responsable du stockage de l’index. Dans ce cas, le contrôle list-view envoie au parent un code de notification LVN_GETDISPINFO pour récupérer l’index lorsqu’il doit afficher l’image.

lParam

Type : LPARAM

Valeur spécifique à l’élément. Si vous utilisez le message LVM_SORTITEMS , le contrôle list-view transmet cette valeur à la fonction de comparaison définie par l’application. Vous pouvez également utiliser le message LVM_FINDITEM pour rechercher un contrôle d’affichage de liste d’un élément avec une valeur lParam spécifiée.

iIndent

Type : int

Version 4.70. Nombre de largeurs d’image pour mettre en retrait l’élément. Une mise en retrait unique est égale à la largeur d’une image d’élément. Par conséquent, la valeur 1 met en retrait l’élément par la largeur d’une image, la valeur 2 retraits par deux images, et ainsi de suite. Notez que ce champ est pris en charge uniquement pour les éléments. La tentative de définition de la mise en retrait du sous-élément entraîne l’échec de la fonction appelante.

iGroupId

Type : int

Version 6.0 Identificateur du groupe auquel l’élément appartient ou de l’une des valeurs suivantes.

Valeur Signification
I_GROUPIDCALLBACK
Le contrôle listview envoie au parent un code de notification LVN_GETDISPINFO pour récupérer l’index du groupe.
I_GROUPIDNONE
L’élément n’appartient pas à un groupe.

cColumns

Type : UINT

Version 6.0 Nombre de colonnes de données (sous-éléments) à afficher pour cet élément en mode vignette. La valeur maximale est 20. Si cette valeur est I_COLUMNSCALLBACK, la taille du tableau de colonnes et du tableau lui-même (puColumns) sont obtenus en envoyant une notification LVN_GETDISPINFO .

puColumns

Type : PUINT

Version 6.0 Pointeur vers un tableau d’index de colonnes, spécifiant les colonnes affichées pour cet élément et l’ordre de ces colonnes.

piColFmt

Type : int*

Windows Vista : Non implémenté. Windows 7 et versions ultérieures : Pointeur vers un tableau des indicateurs suivants (seuls ou en combinaison), spécifiant le format de chaque sous-élément en mode mosaïque étendu.

Valeur Signification
LVCFMT_LINE_BREAK
Force la colonne à encapsuler en haut de la liste suivante de colonnes.
LVCFMT_FILL
Remplit le reste de la zone de vignette. Peut avoir un titre.
LVCFMT_WRAP
Permet à la colonne de s’encapsuler dans l’espace restant de sa liste de colonnes.
LVCFMT_NO_TITLE
Supprime le titre du sous-élément.
LVCFMT_TILE_PLACEMENTMASK
Équivaut à une combinaison de LVCFMT_LINE_BREAK et de LVCFMT_FILL.

iGroup

Type : int

Windows Vista : index de groupe de l’élément. Valide uniquement pour les données de propriétaire/rappel (élément unique dans plusieurs groupes).

Notes

La structure LVITEM est utilisée avec plusieurs messages, notamment LVM_GETITEM, LVM_SETITEM, LVM_INSERTITEM et LVM_DELETEITEM.

En mode vignette, le nom de l’élément s’affiche à droite de l’icône. Vous pouvez spécifier des sous-éléments supplémentaires (correspondant aux colonnes de l’affichage des détails) à afficher sur les lignes sous le nom de l’élément. Le tableau puColumns contient les index des sous-éléments à afficher. Les index doivent être supérieurs à 0, car le sous-élément 0, le nom de l’élément, est déjà affiché. Les informations de colonne peuvent également être définies dans la structure LVTILEINFO lors de la modification de l’élément de liste.

Pour obtenir un exemple de code, consultez Utilisation de contrôles List-View.

Notez Comctl32.dll version 6 n’est pas redistribuable, mais elle est incluse dans Windows ou une version ultérieure. Pour utiliser Comctl32.dll version 6, spécifiez-la dans un manifeste. Pour plus d’informations sur les manifestes, consultez Activation des styles visuels.
 

Notes

L’en-tête commctrl.h définit LVITEM comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête commctrl.h