Problem mit Listbox



  • Also ich versuche so:

    CListBox *list = (CListBox*)GetDlgItem(IDC_LIST_1);
    
            HANDLE handle;
            WIN32_FIND_DATA wfd;
            if((handle=FindFirstFile("c:\\Test\\*.txt", &wfd))!= INVALID_HANDLE_VALUE)
            {
    
                do
                {
                    if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                        list->AddString(wfd.cFileName);
                    else
                        list->AddString(wfd.cFileName);
                } while(FindNextFile(handle,&wfd));
            }
            FindClose(handle);
    

    alle TXT datein die sich in c:\Test befinden in einer Listbox auf zu listen doch irgnt wie komme ich zu keinem ergebnis.Es sind 100% *.txt datein vorhanden. IDC_LIST_1 giebt es auch 😃 . Aber nichs.



  • In MFC haben wir dafür eine Klasse

    CFileFind fileFind;
    BOOL bContinue = fileFind.FindFile("*.txt");
    CStirng filename;
    
    while(bContinue > 0)
    {
     bContinue = fileFind.FindNextFile();
     filename= fileFind.GetFileName();
    
     if (filename== "." || filename== "..")
     {
     }
     else
     {
      if (fileFind.IsDirectory() != 0)
      {
      }
      else
      {
         m_list.AddString(filename);
      }
     }
    
    }
    

    Fehler von mir da ich manche Var geändert habe und manche nicht .

    [ Dieser Beitrag wurde am 13.12.2002 um 10:09 Uhr von Unix-Tom editiert. ]



  • Das kallapt so nich bei mir. Das sind sachen drin die für mich keinen sin ergebn wie ftpfind und appname.



  • Mein Gott, willst Du nun programmieren oder Dir jede Lösung aufs I-Tüpfelchen vorsagen lassen?



  • Ok sagen wir esd andres. Das Problem ist eigentlich nur das er meint Addstrin passt nich CListCtrl.



  • Hir ist ein Link zu nem Tut, wo das irgendwo so in der Mitte drinsteht.
    [url] http://mitglied.lycos.de/ehenkes/mfc_einsteigerbuch_kapitel2.htm [/url]+

    MFG
    FatalError



  • Ich habe es jetzt folgender massen laufen:

    m_list.Dir ( DDL_DIRECTORY , "c:\\*.txt");
    

    Nur das Problem ist das wenn ich die Taste noch mal Drücke das er das noch mal reinschreibt.Nur das Problem ist das jetzt bei jedem aufruf der Taste die werte noch mal eingetragen werden und nicht aktualisiert.



  • Dann lösche davor deine Listbox und trage die Einträge danach ein... oder überprüfe auf Doppelte Einträge



  • Kall wunderbar so:

    m_list.ResetContent();
    m_list.Dir ( DDL_DIRECTORY , "c:\\*.txt");
    

    So jetzt noch das letzte Problem. In dem geschreibenen link würd beschreiben das mann wenn man das so macht:

    void CKap2_4Dlg::OnDblclkList1() 
    { 
        UpdateData(TRUE); 
        WinExec(m_strList1, SW_NORMAL); 
    }
    

    Nur leider ergiebt sich da bei mir keine Aktion.Hat einer ne Idee warum?



  • m_strList1 kist vielleicht keine exe-Datei oder eine ungültige Datei oder sowas... du kannst es dir ja mal inner MessageBox ausgeben.

    Außerdem kann es sein, dass in deinem Listenfeld keine absoluten Pfade("C:\\Windows\\sndrec32.exe") sondern nur relative Pfade ("..\\Blaaa.exe") hast.


Anmelden zum Antworten