Problem mit ListView
-
Hallo,
kann mir einer sagen wieso folgender code nicht funktioniert:
iItemCount=(-1); while(true) { iItemCount=ListView_GetNextItem(hLoveList,iItemCount,LVIS_SELECTED); if(iItemCount==(-1)) break; ListView_GetItemText(hLoveList,iItemCount,0,strItemText,7); fFishes[iCurrentSelection].setMood(GetColorID(strItemText),EQUAL); }
Er bearbeitet immer nur das erste selektierte Element in der Liste, ich will aber dass er alle bearbeitet!
Danke schomal!
-
Du springst aber doch mit if(iItemCount==(-1)) break; gleich wieder raus
-
Ich setz vor der if abfrage ja iItemCount wieder auf den nächsten selektierten ListView Eintrag durch das Makro ListView_GetNextItem. Bei einem Eintrag isses ja auch ok, aber sobald ich mehrere ausgewählt habe macht er auch nur den ersten.
-
LVIS_SELECTED
muß LVNI_SELECTED heißen...
-
LVIS_SELECTED und LVNI_SELECTED sind beide das selbe (0x0002)
-
Sinde denn mehr als ein item ausgewählt?
Guck doch mal mit dem Debugger welchen index du bekommst.btw. dein Samplecode ändert "iCurrentSelection" nicht geändert - liegt aber bestimmt nur am Ausschnitt, oder?
-
Es ist ein Ausschnitt aus der Message Proc das iCurrentSelection wird woanders geändern.
Ich habe natürlich mehrere Elemente ausgewählt. Seltsamerweise wird die Funktion nicht nach dem ersten mal abgrebrochen, wenn ich die ZeileListView_GetItemText(hLoveList,iItemCount,0,strItemText,7);
herausnehme. Es wird dann jedes Item durchgangen, jedoch kann ich es nicht auswerten
-
Zeig mal ein bissl mehr... wahrscheinlich ist das Buffer für den String zu kurz, oder die 7 zu groß....
-
Wäre sehr viel das ich posten müsste damit man einen Zusammenhang erkennt. Auf jeden Fall wird ein Button gedrückt, wonach jener code durchlaufen wird. Der Buffer hat ne Größe von 255 und es können nur sehr kurze Wörter vorkommen (Farben), die auf keinen Fall über 7 Zeichen sind.
-
Seltsam - ändert sich der Wert von iItemCount ?
-
habs lösen können, es lag an ner anderen Stelle im Code.
Trotzdem vielen Dank für die Unterstützung