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.asp

    Trotzdem Danke !
    😉


Anmelden zum Antworten