Position eines Items in einem ListenElement



  • hallo,

    wie kann ich herrausfinden an welcher stelle sich mein item in einer
    ListView befindet? also in welche Spalte!

    gibt es sowas wie

    GetItemPos(id);
    

    oder so? danke euch!



  • - ListView_FindItem (MFC: CListCtrl::FindItem)
    - ListView_GetItem (MFC: CListCtrl::GetItem)


  • Mod

    CListCtrl::GetItemRect macht das!



  • hmm!

    da bekomme ich aber nicht die position der spalte sondern
    irgendwelche andere!

    also ich habe die ID meines Items (z.B: 5) und ich möchte wissen
    in welche Spale es ist (z.B: Spalte 3)

    wie geht das?



  • weil die oben genannten Funktionen erfüllen das ja nicht?!

    jedenfalls bei mir in meiner anwendung nicht!


  • Mod

    CListCtrl::GetSubItemRect!



  • ich glaube wir verstehen uns net 🙂 oder ich verstehe etwas im
    zusammenhang mit Listenelementen net^^

    ich fülle:

    m_List1.InsertItem(0,"test1");
    m_List1.SetItemText(0,1,"200");
    
    m_List1.InsertItem(1,"test2");
    m_List1.SetItemText(1,1,"200");
    
    m_List1.InsertItem(2,"test3");
    m_List1.SetItemText(2,1,"200");
    
    m_List1.InsertItem(3,"test4");
    m_List1.SetItemText(3,1,"200");
    

    also sieht es so aus:

    0: du 200
    1: hehehe 200
    2: abc 200
    3: bela 200
    

    nun sortiere ich z.B. die Listbox dann sieht es so aus:

    2: abc 200
    3: bela 200
    0: du 200
    1: hehehe 200
    

    wenn ich nun ein
    m_List1.DeleteItem(3);
    mache, wird nicht das Element "3" gelöscht sondern das Item "1"
    versteht ihr was ich meine?

    also brauche ich eine Funktion der ich die Item-ID übergebe
    und sie sagt mir an welcher Position sich das Item in der Listbox
    befindet!!

    p.s: oder kann man nachträglich garnicht mehr festellen mit welcher
    ID ein Item eingestellt wurde??



  • Harry H schrieb:

    p.s: oder kann man nachträglich garnicht mehr festellen mit welcher ID ein Item eingestellt wurde??

    SO ist es. Was du "ID" nennst, ist nur die anfängliche Position. Wenn du die Einträge wiedererkennen willst, könntest du z.B. SetItemData und GetItemData benutuen.


Anmelden zum Antworten