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 |