Hallo Hallo
Ich habe eien TreeCTrl, der mit die Ordner von der Festplatte zurück gibt, und der Inhalt der Ordner soll in der Listbox wiedergegeben werden.
kann mir jmd sagen, wo mein fehler liegt?!
er öffnet die liste der dateien in der Listbox entweder sporatisch oder zu 90% zeigt er sie gar nicht erst an
Ich habe eien TreeCTrl, der mit die Ordner von der Festplatte zurück gibt, und der Inhalt der Ordner soll in der Listbox wiedergegeben werden.
kann mir jmd sagen, wo mein fehler liegt?!
PHP:
BEGIN_MESSAGE_MAP(CDlgBarExplorer, CDialog)
//{{AFX_MSG_MAP(CDlgBarExplorer)
ON_NOTIFY(TVN_SELCHANGED, IDC_EXPLORER_TREE, OnSelchangedExplorerTree)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Behandlungsroutinen für Nachrichten CDlgBarExplorer
BOOL CDlgBarExplorer::OnInitDialog()
{
CDialog::OnInitDialog();
TCHAR szWorkDir[MAX_PATH];
_getcwd(szWorkDir, 256);
if(!m_ctrlTree.m_hWnd)
{
if (m_ctrlTree.SubclassDlgItem(IDC_EXPLORER_TREE, this))
{
m_ctrlTree.DisplayTree(NULL, FALSE);
m_ctrlTree.SetSelPath(szWorkDir);
}
}
InitListDir(szWorkDir);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
}
void CDlgBarExplorer::InitListDir(CString strPathName)
{
LV_COLUMN column;
column.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
column.fmt = LVCFMT_LEFT;
column.cx = 100;
column.pszText = "Name";
column.iSubItem = 0;
m_ctrlList.InsertColumn(0, &column);
column.cx = 50;
column.pszText = "Datum";
column.iSubItem = 1;
m_ctrlList.InsertColumn(1, &column);
}
void CDlgBarExplorer::ChangeListDir(CString strPathName)
{
int iItem, iActualItem;
char buf[256];
LV_ITEM item;
HANDLE handle;
WIN32_FIND_DATA fd;
iItem = 0;
item.iImage = 0;
CString strSearchSpec = strPathName + "*.*";
handle = ::FindFirstFile((LPCTSTR)strSearchSpec, &fd);
do
{
if(fd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE)
{
CString strFilename = (LPSTR)&fd.cFileName;
if((strFilename != ".") && (strFilename !=".."))
{
item.mask = LVIF_TEXT | LVIF_IMAGE;
item.iSubItem = 0;
item.iItem = iItem++;
item.pszText = (LPSTR)&fd.cFileName;
iActualItem = m_ctrlList.InsertItem(&item);
CTime cTime(*(&fd.ftCreationTime));
CString strTime = cTime.Format("%d.%m.%y");
sprintf(buf,"%s",strTime);
item.pszText = buf;
item.mask = LVIF_TEXT;
item.iItem = iActualItem;
item.iSubItem = 1;
m_ctrlList.SetItem(&item);
}
}
}
while(::FindNextFile(handle,&fd));
::FindClose(handle);
}
void CDlgBarExplorer::OnSelchangedExplorerTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
ChangeListDir(m_ctrlTree.GetFullPath(pNMTreeView->itemNew.hItem));
UpdateData( FALSE );
*pResult = 0;
}
er öffnet die liste der dateien in der Listbox entweder sporatisch oder zu 90% zeigt er sie gar nicht erst an