zu tree wie die rückgabe //DRINGEND



  • Ich lade auf folgender Weise ein dynamisches Array

    while (mFile.ReadString(Daten_lesen.Rechen_Variante))
            {
                int old = 0,pos = 0;
                CStringArray arr;
    
                while(-1 != (pos = Daten_lesen.Rechen_Variante.Find('\'',pos)))
                {
                    arr.Add(Daten_lesen.Rechen_Variante.Mid(old,pos - old));
                    old = ++pos;
                }
                if(old < Daten_lesen.Rechen_Variante.GetLength())
                {
    
                    arr.Add(Daten_lesen.Rechen_Variante.Mid(old,Daten_lesen.Rechen_Variante.GetLength() - old));
                }
    
                arr1[0].Add(arr[0]);
                arr1[1].Add(arr[1]);
                arr1[2].Add(arr[2]);
                arr1[3].Add(arr[3]);
                arr1[4].Add(arr[4]);
                arr1[5].Add(arr[5]);
                arr1[6].Add(arr[6]);
                arr1[7].Add(arr[7]);
                arr1[8].Add(arr[8]);
    //          arr1[9].Add(arr[9]);
    
                i_neu1++;
    
            }
    

    zur anzeige bringe ich das dann so

    m_cImageList.Create(IDI_Test, 16, 10, RGB(255, 255, 255));
            m_tree.SetImageList(&m_cImageList, TVSIL_NORMAL);
    
                    mFile.Close();
    
                for ( int Schleife1 = 0; Schleife1 < i_neu1; Schleife1++)
                {
                    if (Spalte1 != arr1[2][Schleife1])
                    {
                        Spalte1 = arr1[2][Schleife1];
                        Stufe1 = m_tree.InsertItem(arr1[2][Schleife1],1,1);//hit1
                        Spalte2 = "";
                        Schleife1--;
                    }
                    else if ( Spalte2 != arr1[0][Schleife1])
                    {
    
                        Spalte2 = arr1[0][Schleife1];
                        Stufe2 = m_tree.InsertItem(arr1[0][Schleife1],Stufe1);//hit2
                        Spalte3 = "";
                        Schleife1--;
                    }
                    else if ( Spalte3 != arr1[1][Schleife1])
                    {
                        Spalte3 = arr1[1][Schleife1];
                        m_tree.InsertItem(arr1[1][Schleife1],Stufe2);//hit2
                        m_tree.SetItemImage(Stufe2,3,3);
                        Schleife1--;
                    }                       
    
                }
    

    Das beispiel im Bild [url] http://www.vossy123.de/tree.htm [/url]
    Das geht auch soweit so gut aber wie bekomme ich zurückgeliefert
    was bei einem Doppelklick selektiert wurde natürlich muß der gesammte
    Baum mit zurückgegeben werden

    Danke euch Vossy



  • CString komplett;
        HTREEITEM hitem = pTree->GetSelectedItem();
        while(hitem)
        {
            komplett = pTree->GetItemText(hitem) + "/" + komplett;
            hitem = pTree->GetParentItem(hitem);
        }
    

    [ Dieser Beitrag wurde am 30.11.2002 um 20:16 Uhr von Nemesyzz editiert. ]



  • Wenn ich das in meinen Code reinsetze passiert rein garnichts. 😞



  • Danke Nemesyzz

    hier die komplette lösung nach anpassen deines Codes

    void AuswertungAdd::OnDblclkTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
        HTREEITEM hitem = m_tree.GetSelectedItem();
        while(hitem)
        {
            m_strPath = m_tree.GetItemText(hitem) + "/" + m_strPath;
            hitem = m_tree.GetParentItem(hitem);
        }
    
        UpdateData( FALSE );
        m_strPath="";
    
        *pResult = 0;
    }
    

    An den anderen Vossy der unregistriert ist

    Ich möchte dich bitten einen anderen Namen zu wählen da
    es hier zu mißverständnissen kommen kann.

    Ich würde dir auch ein registrieren deiner Person
    nahelegen

    Danke


Anmelden zum Antworten