Blatt oder Knoten in Explorerstruktur umbenennen
-
Hilfe !!!
Ich habe eine Explorerstruktur erstellt (lese die Daten aus einer DB).
Das funktioniert alles. Jetzt möchte ich aber einen Knoten oder Blatt umbenennen.
Ich habe zwar im Klassenassistenten ein paar Nachrichten gefunden, allerdings bekomme ich nicht den neuen Namen, um ihn in die Datenbank zu schreiben.Den alten Namen bekomme so:
CString oldName; oldName=(m_Tree.GetItemText(m_Tree.GetSelectedItem()));Vielen Dank für Eure Mühe !!!
-
Also ich habs raus bekommen .....
1. Methoden für TVN_BEGINLABELEDIT und TVN_ENDLABELEDIT hinzufügen mit dem Klassenassistenten
2. OnBeginLabelEditExplorerStruct bearbeiten
void Test::OnBeginlabeleditExplorerStruct(NMHDR* pNMHDR, LRESULT* pResult) { TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR; // Holen des alten Namens des aus dem selektierten Element m_strOldName=(m_Tree.GetItemText(m_Tree.GetSelectedItem())); *pResult = 0; }3. OnEndlabeleditExplorerStruct
void Test::OnEndlabeleditExplorerStruct(NMHDR* pNMHDR, LRESULT* pResult) { TV_DISPINFO* pTVDispInfo = (TV_DISPINFO*)pNMHDR; //holt aus dem Zeiger das TV_ITEM Objekt TV_ITEM pItem = pTVDispInfo->item; //holt den Namen des Elements CString newName=pItem.pszText; AfxMessageBox(newName); *pResult = 0; }
An dieser Stelle mal ein großes Lob an Microsoft !!! Viel gescholten, aber in dieser Beziehung doch sehr auskunftsfreudig ...
Artikel hierzu:
http://msdn.microsoft.com/library/deu/default.asp?url=/library/deu/vccore/html/_core_tree_control_label_editing.aspTrotzdem Danke !
