CListCtrl Fehler beim einfügen von Items



  • Hi, ich möchte in einem CListCtrl mit 4 Spalten verschiedene Daten eintragen.
    Ein Item für eine neue Zeile wird wie mir scheint ohne Probleme erstellt.

    Jedoch tritt ein Fehler beim eintragen in die 2. Spalte auf.

    Mein Code:

    // Anzahl der Items wurde vorher gezählt
    for(int i=0; i<anz; i++)
    {	
             // 1. Rechteobjekt holen
    	CString res = rights.rightsget(i, xmlstring);	
             // Item erstellen und Spalten mit den Daten füttern
    	int item = righttable.InsertItem(i, _plantid);
    	righttable.SetItemText(item, 1, _appid);
    	righttable.SetItemText(item, 2, res);
    	righttable.SetItemText(item, 3, _username);		
    }
    

    Der Fehler soll in der winctrl2.cpp auf Zeile 546 auftreten. Ich kann aber keinen Fehler in meinem COde finden.



  • Und was steht in der winctrl2.cpp an Zeile 546? 🙄



  • Um es kurz zu zitieren:

    BOOL CListCtrl::SetItemText(int nItem, int nSubItem, LPCTSTR lpszText)
    {
    	ASSERT(::IsWindow(m_hWnd));
    	ASSERT((GetStyle() & LVS_OWNERDATA)==0); // Zeile 546
    	LVITEM lvi;
    	lvi.iSubItem = nSubItem;
    	lvi.pszText = (LPTSTR) lpszText;
    	return (BOOL) ::SendMessage(m_hWnd, LVM_SETITEMTEXT, nItem, (LPARAM)&lvi);
    }
    

    Aber danke durch die Frage hab ich den Fehler gefunden. 🙂
    Ich darf natürlich nicht auf Besitzerdaten true laufen lassen.



  • Hab dann nochmal eine Frage. Und zwar ist die Anwendung mit Anmeldung. Nun möchte ich, dass wenn der User auf abmelden klickt, die Tabelle geleert wird.

    Gibt es da direkt eine Funktion bei CListCtrl?

    // Tut mir leid, hab es nun gefunden.



  • wie währe es mit DeleteAllItems(), wenn man die Members von CListCtrl anschaut, findert man das ganz schnell 😉

    http://msdn.microsoft.com/en-us/library/zdff988k(VS.80).aspx



  • Hatte ich ja auf die Weise auch gefunden. 🙂 Auch wenn ich es mehrfach übersehen haben muss.


Anmelden zum Antworten