Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » treectrl fehler

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.06.2004, 13:56 Uhr
rene rosenberger



hallo,

wer findet den fehler ? access violation.... bei findrekursivverzeichnis.


Code:
BOOL CNewProject::OnInitDialog()
{
    CDialog::OnInitDialog();

    m_ProjektnameCtrl.SetFocus();
    
    //Pointer auf das Tree Objekt
    CTreeCtrl* pTreeCtrl = ( CTreeCtrl* )GetDlgItem( IDC_TREE1 );
    
    //Bildliste initialisieren und mit Steuerelement verknüpfen
    m_ImageList.Create( 16, 16, 0, 8, 8 );

    HICON hIcon1 = AfxGetApp()->LoadIcon( IDI_ICON1 );
    m_ImageList.Add( hIcon1 );

    HICON hIcon2 = AfxGetApp()->LoadIcon( IDI_ICON2 );
    m_ImageList.Add( hIcon2 );

    pTreeCtrl->SetImageList( &m_ImageList, TVSIL_NORMAL );

    //Initialisieren der Baumansicht
    m_Tree1.DeleteAllItems();

    UpdateData( TRUE );

    HTREEITEM pItem = pTreeCtrl->GetRootItem();

    FindRecursivVerzeichnis(pItem);


    return FALSE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
}


/******************************************************************************
* Funktionen zum Füllen des TreeCtrls
*/
void CNewProject::FindRecursivVerzeichnis( HTREEITEM pNode)
{
    CFileFind finder;
    bool bWorking = finder.FindFile("\\*.*");

    while (bWorking)
    {
        bWorking = finder.FindNextFile();
        if ( finder.IsDots() )
        {
            //tue nichts
        }
        else
        {        
            if ( finder.IsDirectory())
            {
                TVINSERTSTRUCT tvInsert;
                tvInsert.hParent = pNode;
                tvInsert.hInsertAfter = pNode;
                tvInsert.item.iImage = 0;
                tvInsert.item.iSelectedImage = 1;
                tvInsert.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
                char sz[_MAX_PATH];
                strcpy( sz, finder.GetFileName());
                tvInsert.item.pszText = sz;
                CTreeCtrl* tree = (CTreeCtrl*)GetDlgItem( IDC_TREE1);
                HTREEITEM item = tree->InsertItem( &tvInsert);

                FindRecursivVerzeichnis(item);
            }
            else
            {
                //tue nichts        
            }
        }    
    }
}



bin da echt etwas ratlos. scheint beim letzten rekursiv aufruf zu krachen.
--
gruesse rene
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.06.2004, 10:09 Uhr
rene04



keiner ne ahnung an was die access violation liegen könnte ? sowas pasiert sochj immer wenn etwas ungültig ist oder keinen gültigen wert hat, oder ? habe mal den debugger rennen lassen. also 4 mal habe ich durchlaufen lassen die funktion findrekursivverzeichnis. das hat geklappt. muss also später krachen. versteh das das aber absolut nicht, denn der code sieht für mich sauber aus. oder bin ich blind ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: