Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

04.03.2006, 15:51

[WinAPI] Listview füllen!

Hiho!

Ich hab mal noch ene Frage zu dem Listviewelement!

Bei mir wird das Listview so gefüllt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
            for (int i = 16;i>0;i--)
            {
                Item.mask=LVIF_TEXT ;
                Item.iItem=1; 
                Item.iSubItem=NULL; 
                Item.stateMask=NULL; 
                Item.pszText=Rangliste[i].szRang; 
                Item.cchTextMax=3;

                itemjetzt = ListView_InsertItem(hwndlvw,&Item);
                ListView_SetItemText(hwndlvw, itemjetzt, 2, Rangliste[i].Endergebnis);
                ListView_SetItemText(hwndlvw, itemjetzt, 3, Rangliste[i].szDatum);
                ListView_SetItemText(hwndlvw, itemjetzt, 1, Rangliste[i].Benutzername);
            };


so, also das 16te Element zu ers, dann müsste das 15 über dem 16 entstehen, das 14te dadrüber usw. <<<<< eigenl.

Aber aus irgendeinem Grund bleibt das 16te Element ganz an der Spitze:

(Link)

Wenn ich nun z.B. nicht 16 nehme, sondern 5, dann bleibt das 5te Element an der Spitze ... Was is da faul?

Das Listview hat keinen Sortierstyle, wenn ich solch einen aktivieren würde, dann würde es auch gehen, aber das möchte ich nciht umbedingt, bzw. möchte wissen, warum das erste Element immer ganz oben hängen bleibt!

THX

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

2

04.03.2006, 16:01

warum machst du nicht einfach so was:

C-/C++-Quelltext

1
2
3
4
for(int i = 1; i < 16; i++)
{
//Ausgabe

}

dann fängt die aufzählung bei 1 an und geht bis 16

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

04.03.2006, 16:03

Du setzt ja auch jedesmal iItem auf 1. Ist doch klar, dass die Elemente jedesmal an derselben Position eingefügt werden... abgesehen von dem ersten, weil es da ja noch gar keinen "1. Index" gibt (weil die Liste leer ist), daher wird die 16 an Index 0 gespeichert.

Die Attribute der Struktur LVITEM sind all in der MSDN detailliert beschrieben...

4

04.03.2006, 16:10

@Steven77 deine Erklärung war plausiebel und hat geholfen, dankeschön!
@dbGAMES das könnte ich auch machen, aber dann hätte ich das Element 1 ganz oben und dann würde drunter
16
15
14
usw. kommen ... *g*

Aber dankeschön, mein problem is gelöst!

Werbeanzeige