Probleme mit CListCtrl



  • Welches VC nutzt du?
    Beim VC6 gibt es einen Service Pack 6. 😉 Evtl. wars doch ein Fehler. 😃



  • is doch logisch das du -1 machen musst, da du ja mit

    nListElem = m_pList->GetItemCount()+1; // +1
    

    gearbeitet hast

    in einer CListCtrl ist element 1 wie in einem array 0



  • @Uruk: Genau das wundert mich ja auch. Aber das ging nur so. Ich hatte es natürlich zuerst ohne die -1 probiert, da es sich ja beim InsertItem und SetItemText um dieselbe Zeile handeln sollte...

    @Mr. Evil: Nee damit hat das rein gar nix zu tun, das ist nur, um die aktuelle Anzahl an Beiträgen rauszufinden und ich will nicht mit 0 bei der Numerierung anfangen.

    @estartu: Das könnte eine Lösung sein, ich hab es hier mit dem MS VC 6.0 probiert... ich teste es mal in einer späteren Version...



  • Knaecke schrieb:

    Nee damit hat das rein gar nix zu tun,...

    Dann sagst du aber, er soll das erste Element an Stelle 1 einfügen. Was ist dann an Stelle 0 (bei der die Zählweise startet) ?
    Oder andersrum:
    deine Liste enthält ein einziges Element an zweiter Stelle ?!?



  • Knaecke schrieb:

    @Mr. Evil: Nee damit hat das rein gar nix zu tun, das ist nur, um die aktuelle Anzahl an Beiträgen rauszufinden und ich will nicht mit 0 bei der Numerierung anfangen.

    Du willst vielleicht nicht - aber das CListCtrl fängt bei Null an mit der Zählung.



  • Hab hier mal nen hilfreichen link ausgegraben...
    http://www.coding-help.de/listenelement.html



  • CStoll schrieb:

    Knaecke schrieb:

    @Mr. Evil: Nee damit hat das rein gar nix zu tun, das ist nur, um die aktuelle Anzahl an Beiträgen rauszufinden und ich will nicht mit 0 bei der Numerierung anfangen.

    Du willst vielleicht nicht - aber das CListCtrl fängt bei Null an mit der Zählung.

    Oh stimmt, hatte ich trotz mehrfachem Lesen übersehen. 😮
    Mich hatten einfach nur die unterschiedlichen Idizes in Zeile 7 und 8 iritiert.



  • Apropo Zeile 7 und 8...muss das dann nicht in beiden "-1" sein????



  • CStoll schrieb:

    Knaecke schrieb:

    @Mr. Evil: Nee damit hat das rein gar nix zu tun, das ist nur, um die aktuelle Anzahl an Beiträgen rauszufinden und ich will nicht mit 0 bei der Numerierung anfangen.

    Du willst vielleicht nicht - aber das CListCtrl fängt bei Null an mit der Zählung.

    Ok das war der Fehler *g* Dann entschuldige ich mich auch mal bei Mr Evil 😉
    Ich hab's nun abgeändert und die 1 nur beim String der Position addiert. Nun geht es. Danke für die schnelle Hilfe. (Mit dem 2003er Studio ging's übrigens auch nicht 😉 )

    while(file.ReadString(line)){
    				nListElem = m_pList->GetItemCount(); 
    				pos.Format("%3d", nListElem+1); 
    
    				m_pList->InsertItem(nListElem, pos);		//Position
    				m_pList->SetItemText(nListElem, 1, line); //Eintrag
    			}
    

    Nun hab ich aber noch das Problem, das ich gern die Einträge in der 2. Spalte bearbeiten möchte, das geht bisher aber default-mäßig nur mit der ersten, die zweite kann ich nicht mal markieren. Hat da einer einen Vorschlag? Da muss es doch irgendein Event geben... *such*



  • Knaecke schrieb:

    die zweite kann ich nicht mal markieren. Hat da einer einen Vorschlag?

    // Immer die gesamte Zeile auswählen
    	SendDlgItemMessage(IDC_LSC_ERGEBNISSE, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP);
    

    ...oder in der FAQ. 😉

    Wegen dem Editieren kann ich dir nur Codeproject ans Herz legen: http://www.codeproject.com/listctrl/



  • *mitsucht*

    m_pList->SetExtendedStyle(LVS_EX_FULLROWSELECT);
    


  • Hm für's Markieren war schon der Link von Uruk ganz hilfreich, aber zum editieren werd ich mir mal den anderen anschauen. Wenn's ein brauchbares Ergebnis gibt, werd ich das mal hier posten, falls später mal noch einer danach sucht 😉

    Danke nochmal für die Links. Wenn man selbst sucht findet man irgendwie immer nur die falschen Links bei sowas 😞

    EDIT: Hm der Link bei Codeproject ist gut, endlich mal was ausführliches. Sowas hab ich lange gesucht und nie gefunden. Da kann ich wahrscheinlich sogar mehr aus meinem kleinen Tool machen als geplant war 😉

    nochmal EDIT: Hab es nun doch anders gelöst, ohne direktes Editieren, daher hab ich doch leider keine Lösung 😉 Damit kann das Thema eigentlich geschlossen werden.


Anmelden zum Antworten