[ListView] Alle Items "nicht" markieren?



  • Was steht denn in dem lParam's der LV_ITEM's? Da solltest du doch deine Informationen über jedes einzelne Item reinschreiben. Dann brauchst du in der Sortierfunktion auch nicht ListView_GetItemText() und ListView_FindItem() zu verwenden. Daran liegt es ganz sicher.



  • ChrisK schrieb:

    narf! <-- woher kommt denn das wort? weiß es echt nicht, sagts mal kurz :>

    Kommt meines Wissen von "Pinky und Brain" 😉



  • :>
    Ich probiers mal mit felnders Antwort hinzubekommen.

    Gruß!



  • Damit wirst du leider keinen Erfolg haben. Aber wenn du ein Prog haben willst, das nicht funktioniert, ist dir auch nicht mehr zu helfen...



  • Wieso sagst Du sowas und schreibst keine Lösung? Wieso sagst Du, "wenn ich ein Prog haben will, das nicht funktioniert,...". Is doch SCHEISSE?
    :>

    Hört sich an als wüsstest Du, was ich tun solle, dann wär's kewl gewesen, wenn Du das gleich geschrieben hättest. Ich wäre dann zufrieden, und ich könnte mir die Nachfrage sparen und Du ein extra Posting, wär doch besser oder? :>

    Also rück raus bitte *g



  • ChrisK schrieb:

    Hört sich an als wüsstest Du, was ich tun solle, dann wär's kewl gewesen, wenn Du das gleich geschrieben hättest.

    Du bist echt ein Blödmann. Wozu schreibe ich eigentlich Beiträge, wenn du sie nicht liest. Ich hab dir bereits gesagt, was du tun sollst! Du sollst für jede Zeile einen Datensatz bereit halten und diesen im LV_ITEM::lParam speichern. Bei LVN_GETDISPINFO sollst du dann für jedes Item den Text anzeigen, den du eben aus dem lParam von TV_ITEM holst. In der Sortierfunktion bekommst du diese lParams in den Parametern mitgeschickt und kannst direkt auf den Text zugreifen ohne ListView_GetItemText() zu verwenden. Ich wiederhole mich ungern!



  • Und warum sollte meine Variante nicht funktionieren 😕



  • Du bist echt ein Blödmann.

    Ehm, das ist sehr... Ihr wisst schon. Das Thema ist für mich geschlossen, danke WebFritzi.

    Thx @ flenders ich lese mal die Stellen die Du da gefunden hast nochmal nach!



  • Okay, ich weiß zwar nicht @flenders, ob das die eleganteste Lösung war, aber schau Dir mal diesen Code an:

    for(int i=0; i<ListView_GetItemCount(GetDlgItem(hMainWnd, IDC_LIST1)); i++)
    {
    	LVITEM lvi;
    	lvi.iItem = i;
    	ListView_GetItem(GetDlgItem(hMainWnd, IDC_LIST1), &lvi);
    	lvi.lParam = i;
    	ListView_SetItem(GetDlgItem(hMainWnd, IDC_LIST1), &lvi);
    }
    

    Das rufe ich nach dem "Verschieben" der Items auf! Was passiert? Jedes Item bekomm ein frisches, geordnetes lParam. Ergebnis? Die Liste lässt sich nach dem "Verschieben" 1A sortieren!



  • Ich hätte zwar dann eher ListView_SortItemsEx verwendet, aber wenn's läuft 😉


Anmelden zum Antworten