Suche rechte Seite des Explorers



  • hallo,

    mit einem CTreeCtrl hab ich bereits die Linke seite des Explorers in meinem Programm implementieren können. Nun bräuchte ich ein ListCtrl oder etwas ähnliches mit dem ich die rechte seite des Explorers darstellen könnte ... wichtig wäre dabei, dass ich dort dann auch mehrere elemente per strg und shift-taste markieren kann... halt ganz wie im explorer. die markierten elemente müssten sich natürlich auch alle auslesen lassen können

    ich bin mir sicher dass es soetwas schon gibt. Ich hab nur leider nix bei codeproject und co. gefunden

    danke schonmal

    mfg, TFTS



  • Hast du das ganze als Dialog oder SDI Anwendung gemacht? Schau dir mal die CListView Klasse an.
    Wenn du beides in ein SDI Anwendung packen möchtest, musst du mit einem CSplitterWnd arbeiten.
    Beim Dialog einfach ein Listenelement hinzufügen. Du musst dann nur noch den Berichtsstyle einstellen, somit hast du dann diese Liste wie der Explorer auch!

    http://members.tripod.com/digitaldawn/section18/section18.html



  • hallo,
    danke für deine antwort!

    ich möchte es in eine dialogbasierende anwendung implementieren. Ich dachte eigentlich, dass es soetwas für datei bzw. ordner strukturen schon fertig als abgeleitete klasse (oder soetwas ähnliches) gibt. also dass ich nur noch einen pfad hineingeben muss und mir das listenelement dann den inhalt des ordners anzeigt und mir die möglichkeit gibt mehrere elemente anzuklicken ... bzw. deren pfad zu bekommen

    mfg, TFTS

    PS: im prinzip bräuchte ich soetwas:
    http://www.codeproject.com/listctrl/drivebrowser.asp
    nur eben für eine dialog basierende anwendung



  • mit der CListBox member funktion Dir kann man sich den inhalt eines ordners anzeigen lassen ... aber wie schaffe ich es, dass ich mehrere elemente markieren kann?

    mfg, TFTS



  • so für alle die vor dem selben problem stehen...

    a) eine listbox erstellen ... in den eigenschaften der listbox Selection "multiple" auswählen
    b) dieser listbox eine membervariable (control) vom typ CListBox hinzufügen
    c) button erstellen ... on click funktion hinzufügen

    void CFilebrowserDlg::OnButton1() 
    {
    	chdir("C:\\");
    	m_ctrlListBox.Dir(NULL,"*.*");	
    }
    

    d) weiteren button erstellen

    void CFilebrowserDlg::OnButton2() 
    {
    	int i;
    	i = m_ctrlListBox.GetSelCount();
    	int* pIndex = new int[i];
    	m_ctrlListBox.GetSelItems(i,pIndex);
    
    	//hier pIndex verwenden
    	delete pIndex; //Speicher freigeben
    }
    

    pIndex ist dann ein int vektor der die indexe der markierten elemente enthält

    mfg, TFTS


Anmelden zum Antworten