2010-07-10 4 views
5

Je n'arrive pas à ajouter des éléments à un contrôle ListView. Lorsque j'essaie d'ajouter des éléments à ma ListView, rien ne se passe. J'utilisais ce code auparavant, et ça n'a pas marché.Ajouter des éléments à un ListView?

J'ai 3 colonnes, avec les valeurs de sous-élément mis à 1, 2 et 3.

LVITEM item; 
    item.mask = LVIF_TEXT; 
    item.cchTextMax = 6; 

    item.iSubItem = 1; 
    item.pszText = TEXT("12345"); 
    item.iItem = 0; 
    ListView_InsertItem(hListView, &item); 

    item.iSubItem = 2; // zero based index of column 
    item.pszText = TEXT("23456"); 
    ListView_InsertItem(hListView, &item); 

    item.iSubItem = 3; // zero based index of column 
    item.pszText = TEXT("34567"); 
    ListView_InsertItem(hListView, &item); 

Répondre

0

Avez-vous appelé ListView_InsertColumn (link)? Une colonne n'apparaîtra pas dans un ListView en mode "détails" (le colonne) jusqu'à ce que vous le fassiez. Ainsi, si vous n'avez ajouté aucune colonne, vous ne verrez rien. (Peu importe si vous utilisez les en-têtes ou non)

+0

j'avais déjà ajouté la colonne, mais pour une raison quelconque, rien ne se montrant. Quoi qu'il en soit, le code s'est en quelque sorte corrigé. –

8

De MSDN:

Vous ne pouvez pas utiliser ListView_InsertItem ou LVM_INSERTITEM pour insérer des sous-éléments. Le membre iSubItem de la structure LVITEM doit être égal à zéro. Voir LVM_SETITEM pour plus d'informations sur la définition des sous-éléments.

Essayez d'utiliser ListView_SetItem() pour les colonnes secondaires (Sous-options 1 et 2) après avoir ajouté la première colonne (le paragraphe 0) avec ListView_InsertItem().

+0

Merci, cela a fonctionné. :) –

1

ListView_SetItemText (link) doit être utilisé pour les sous-éléments.

code Exemple:

ListView_SetItemText(hListView, 0, 1, TEXT("12345")); 
ListView_SetItemText(hListView, 0, 2, TEXT("23456")); 
ListView_SetItemText(hListView, 0, 3, TEXT("34567")); 
Questions connexes