Listcontrol mit 3 Spalten



  • Hi allezusammen,

    mein Problem ist, dass ich eine Listbox mit mehreren Spalten erstellen will.
    Ich habe mir hier viele Beiträge zu diesem Thema durchgelesen aber ich bekomme die Funktion "InsertItem" (wenn das überhaupt die Lösung ist) nicht hin.

    Fehlermeldung: 'InsertItem' : is not a member of 'CListBox'

    hat jemand vielleicht ein Codebeispiel, nach dem ich mich richten könnte?



  • Hi,

    Die Lösung heist nicht CListBox sondern CListCtrl.

    dort gibt es auch InsertItem.

    MFG
    Kai



  • Moin,

    mit diesen Minibeispiel hast Du die Chance in der MSDN suchen zu können.
    d.h. die Suchbegriffe.
    Gruß, Tom

    CListCtrl * pList = (CListCtrl*) GetDlgItem(IDC_TELEFONBUCH);
    CString strText;

    pList->SetColumnWidth( 0, 220);
    pList->SetColumnWidth( 1, 203);
    for (i=0;i < 10;i++)
    {
    strText.Format(TEXT("Adresse %d"), i);
    pList->InsertItem(LVIF_TEXT|LVIF_STATE, i, strText, 0 , LVIS_SELECTED,0, 0);

    // Spalten befüllen.
    for (int j=1;j < 2;j++)
    {
    strText.Format(TEXT("21019%d"), i);
    pList->SetItemText(i, j, strText);
    }
    }



  • InsertItem fügt keine Column ein.
    Es fügt ein neues Item ein (Sagt der Name schon

    InsertColumn ist was du suchst. Ist eine Member von CListCtrl.



  • Vielen Dank, ich habe das gleich getestet, hat funktioniert.
    Allerdings ist die Handhabung nicht so einfach vie bei CListBox.

    z.B. m_list.GetCount() funktioniert hier natürlich nicht so einfach !



  • Es funktioniert überhaupt nicht. Du suchst GetItemCount.



  • Ich sagte doch, es funktioniert!

    Nur konnte ich den Befehl, der die aktuelle Position ausliest nicht finden! Was anderes steht da doch gar nicht.

    Die restlichen Befehle habe ich auch noch gefunden um auf dem selben Stand wie mit den 'CListBox' zu sein.

    Danke



  • Moin,
    @Unix-Tom, joo Du hst recht, vergaß die Vorarbeit mit zu kopieren. Sri.

    Gruß, Tom



  • Hi, ich nochmal, ich finde einfach nicht den Befehl, der mir den aktuellen selektierten Index zurückliefert! Die Anzahl der Einträge oder Anzahl der selektierten geht, aber den Index find ich nicht.

    KAnn mir jemand auf die Sprünge helfen? Besten Dank im Voraus



  • Da mehr als ein Item selektiert sein kann (hängt vom Style des List Control ab), brauchst Du dazu zwei Methoden:

    POSITION pos = listctrl.GetFirstSelectedItemPosition();
    while (pos) 
    {
       int nSelectedItem = listctrl.GetNextSelectedItem(pos);
    }
    


  • Moin,
    so wie eben aufgezeigt oder auch mit
    int Index = GetNextItem( 0, LVNI_SELECTED ). Der erste Parameter beschreibt den Startindex
    von wo aus gesucht wird.
    Gruß, Tom



  • DAnke euch!!


Anmelden zum Antworten