TreeView GetItemData Problem
-
Hallo Zusammen,
Ich will in eimem Programm Datensätze aus einer Datenbank in einer Strukturansicht ( TreeView) darstellen.
Das klappt auch soweit. Aber zum richtigen Anlegen der Unterknoten muss ich den Oberknoten finden.
Über den Textinhalt den Knoten geht es nicht, da der Text mehrfach vorkommen kann.
Deshalb möchte ich in das Data Feld einen eindeutigen Wert eintragen, den ich später wieder suchen kann.Leider funktioniert das nicht.
Ich habe das Problem hier mal verkürzt dargestellt.
Hier setz ich den Text in das Data Feld ein
m_wndFileView.SetItemData(hSrc, (DWORD_PTR) &tmpString);
In der nachfolgenden Zeile möchte ich zum Test den Inhalt zurück lesen
CString tst = (CString *) m_wndFileView.GetItemData(hSrc);
Das führt jedoch zu dieser Fehlermeldung :
Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
Fehler C2440 "Initialisierung": "CString *" kann nicht in "ATL::CStringT<wchar_t,StrTraitMFC<wchar_t,ATL::ChTraitsCRT<wchar_t>>>" konvertiert werdenWäre euch sehr verbunden hier weitere Unterstützung zu bekommen.
VG u. Danke im vorraus
verwegener
-
Syntaktisch richtig wäre ja auch nur:
CString tst = *(CString *) m_wndFileView.GetItemData(hSrc);
In meinen Augen besser:
CString tst = *reinterpret_cast<CString *>(m_wndFileView.GetItemData(hSrc));
Ich hoffe Dir muss klar sein dass tmpString auch weiter existieren muss, solange Du einen Zeiger darauf benutzen willst...
-
Danke,
da hab ich wohl vor lauter Zeigern den Baum nicht gesehen.
So funktioniert es jetzt.
Vielen Dank für die Hinweise, jetzt komme ich weiter.