CListCtrl Index eines Items ändern

Lexx84

Grünschnabel
Hallo Leute,
wenn ich mich hier im Forum so umsehe, scheint das CListCtrl schon seinen Ruf weg zu haben :) und auch ich habe ein Problem damit.

Ich versuche einen selektierten Listeneintrag über eine Schaltfläche nach oben zu verschieben. Heißt wenn der selektierte Listeneintrag vorher an 4. Stelle war, soll er jetzt an 3. Stelle sein.
Ich hab mir überlegt, dass jedes Item im ListControl einen Index (iItem) hat. Wenn ich darauf zugreife, könnte ich die Indexe der beiden Einträge vertauschen.
Ich hoffe, die Erklärung war verständlich :)

Hat jemand einen Ansatz für mich, wie ich das realisieren könnte?
Danke schon mal im Voraus.
 
Ganz banal. Item löschen, Item einsetzen. Bei InsertItem kannst du ja einen Positions-Index angeben, wo das neue Element eingesetzt werden soll.
 
Danke Endurion, der Ansatz gefällt mir!
Nur noch eine Frage dazu zwecks des Verständnisses...
Wenn ich mein Item lösche und einen Eintrag davor setze, habe ich dann nicht zwei Einträge mit der selben Position? Kann das ListControl damit umgehen?
Und muss ich dann alle nachfolgenden Einträge nicht auch löschen und mit neuer Position wieder reinsetzen, damit der Index wieder stimmt? Sonst hab ich ja einen Eintrag zweimal und den folgenden gar nicht...Oder hab ich gerade einen Denkfehler?
 
Ok, meine letzte Frage hat sich inzwischen erledigt, wenn man ein Item aus dem ListControl löscht, werden die nachfolgenden Indizes nachgezogen und ich kann einfach das Item wieder reinknüppeln, wie Endurion gesagt hat. Danke nochmal für die Hilfe!
 

Neue Beiträge

Zurück