Erweiterung von SHBrowseForFolder
-
Ok, krieg ich irgendwo ein Panel her, welches mein Filesystem als Baum anzeigt, oder muss ich mir das auch selbst basteln?
Danke
markus
-
Such mal nach CTreeView (MFC) bzw. CreateWindowEx mit WC_TREEVIEW.
-
Hast Du schon mal mit BIF_EDITBOX experimentiert?
Evtl. kannst Du über einen simplen Subclass dieses Edit control nutzen. Mit BFFM_SETSELECTION kann man ja gezielt etwas auswählen.
-
Hallo,
erstmal vielen Dank für eure Tipps.
Etwas selbst basteln wird mir zu aufwendig.
Beim zweiten Vorschlag bin ich auch nicht weiter gekommen, weil ich nicht weiß, wie ich eine Änderung in der Editbox (oder die Enter-Taste) abfangen kann, um anschließend den eingegebnen Pfad in der Baumasicht zu selektieren.Wenn noch jemand weiter weiß, bin ich dankbar, ansonsten muss ich mir was anderes überlegen.
Grüße
markus
-
56cent schrieb:
Beim zweiten Vorschlag bin ich auch nicht weiter gekommen, weil ich nicht weiß, wie ich eine Änderung in der Editbox (oder die Enter-Taste) abfangen kann, um anschließend den eingegebnen Pfad in der Baumasicht zu selektieren.
http://blog.m-ri.de/index.php/2008/09/21/die-return-taste-in-dialogen-eine-unendliche-geschichte/
-
Ok, nochmals danke, aber das ist mir zu heavy :-). Da steig ich nicht ganz durch.
Wenn ich das richtig verstanden habe, bräuchte ich fürHWND hWndEdit = GetDlgItem(hDlg,IDC_EDIT1);das Handle auf den Dialog (von SHBrowseForFolder) und den Identifier der Editbox. Woher bekomme ich die beiden Parameter?
Grüße
markus
-
Mit Spy++. Die IDs sind konstant.
-
Sorry, aber sowohl der Dialog als auch die Editbox haben bei jedem Aufruf laut Spy verschiedene Handles. Ich komme leider nicht weiter...
-
Es geht nicht um die Handles, es geht um die IDs!
-
Ok, nach vielem Rumprobieren hab ich es hingekriegt.
Das Subclassing mache ich nachdem der Dialog initialisiert wurde (BFFM_INITIALIZED) in der BrowseCallbackProc, die ich im BROWSEINFO struct der SHBrowseForFolder angeben kann. Weil nur da kenne ich das Handle des Dialogs.Es war ein Kampf aber jetzt funktioniert es.
Danke Martin.Grüße
markus
-
56cent schrieb:
Es war ein Kampf aber jetzt funktioniert es.
Danke Martin.Gern geschehen. Nur so lernt man!