2013-01-18 4 views
0

J'ai ajouté des éléments à ListControl, ils ont des images. Maintenant, je veux les changer, j'ai essayé de faire GetItem et SetItem, mais je n'étais pas capable. Au moins, je ne sais pas comment obtenir un objet que je veux. Comment puis-je changer l'image d'un élément dans ListView?MFC ListView Modifier l'image de l'article

Merci

P.S.

J'ai réussi à le résoudre. Voici la solution:

Voici comment boucle

LVITEMW pitem; 
ZeroMemory(&pitem, sizeof(pitem)); 

pitem.mask = LVIF_TEXT | LVIF_IMAGE; 
pitem.iItem = <SET INDEX OF YOUR ITEMS HERE, YOU CAN LOOP HERE>; 
pitem.iSubItem = 0; 
pitem.pszText = new wchar_t[256]; 
pitem.cchTextMax = 255; 
mlist.GetItem(&pitem); 

Et après avoir sélectionné un élément, vous pouvez changer son image comme ceci:

pitem.iImage = newindex; 
mlist.SetItem(&pitem); 
+0

P.S. c'est CListCtrl –

Répondre

0

CListCtrl::SetItem est à l'aide de droite. Vous devez définir le paramètre nMask sur LVIF_IMAGE et fournir l'index de l'image dans der image-list dans le paramètre iImage.

+0

J'ai déjà ajouté des éléments, comme ceci: mlist.InsertItem (0, User, imgstatus); imgstatus est l'index d'une image dans ImageList et l'ajout d'éléments fonctionne bien. Maintenant, comment puis-je sélectionner un élément spécifique dans ListView et comment puis-je appeler SetItem dessus? –

+0

Vous devez connaître l'index de l'élément pour le modifier. Parcourez tous les éléments pour en trouver un spécifique ou utilisez 'GetNextItem' pour trouver les éléments sélectionnés. – dwo

+0

Comment savoir ce que je recherche? PszText est-il un bon choix? Est-ce que pszText contient du texte lorsque je l'ai ajouté en utilisant InsertItem? –

Questions connexes