Browse Fenster öffnen

Dorschty

Erfahrenes Mitglied
Hey Leute,

ich suche nach einer Möglichkeit, bzw. Befehl unter dem ich in Visual Studio das Standart Windows suchfenster öffne. Also, wenn ich zB in Word eine Datei öffnen will, und unter Datei->Öffnen klicke öffnet sich ja ein Fenster, in dem ich die Verzeichnisstruktur des Rechners sehe und dort was auswählen kann. Genau dieses Fenster will ich öffnen, nur soll er keine Datei, sondern einen ganzen Ordner auswählen können. Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.
Wäre super, wenn mir jemand helfen könnte.
Danke im Voraus

Gruß
Dorschty
 
Ein Dialog zum aussuchen von nem Ordner?

Da hab ich was:
C:
BROWSEINFO BIDir;
LPITEMIDLIST ItemIdList;
char pszDisplayName[ MAX_PATH ];
char SelectedFolder[ MAX_PATH ];

BIDir.hwndOwner = hMainWindow;
BIDir.pidlRoot = NULL;
BIDir.pszDisplayName = pszDisplayName;
BIDir.lpszTitle = "The title here.";
BIDir.ulFlags = BIF_NEWDIALOGSTYLE;
BIDir.lpfn = NULL;
BIDir.lParam = 0;

ItemIdList = SHBrowseForFolder( &BIDir );

if ( ItemIdList != NULL ) {
    if ( !SHGetPathFromIDList( ItemIdList, SelectedFolder ) )  {
        MessageBox( hWindow, "This is not a valid folder to select!", "", MB_OK | MB_ICONINFORMATION );
    } else {
        // do something with SelectedFolder
    }
}

Damit kann man nach Ordnern browsen mit Ok, Neuer Ordner und Abbrechen Buttons.
Wenn man beispielsweise möchte das der Neuer Ordner Button nicht angezeigt wird,
muss man das flag BIF_NONEWFOLDERBUTTON bei der BROWSEINFO Struktur
setzen.

Offtop:
Du scheinst sehr ungeduldig zu sein :)
Es sind nicht immer User online die sich in dem bestimmten Thema was du ansprichst auskennen,
da können durchaus auch mehrere Stunden wenn nicht Tage vergehen bis man eine Antwort bekommt ;)

Best wishes
FBIagent
 
Zuletzt bearbeitet:
Hey FBIagent,

vielen Dank für deine Antwort. Braucht man dafür noch irgendwelche includes? Ich hab den Code genauso wie er unten steht eingefügt und hab 68 errors.
Das ist doch was selbst entwickeltes und nicht der Standart von Windows oder?

Gruß
Dorschty
 
Das ist von windows. Was du Inkludieren musst kannst du in der MSDN finden.
Bei google einfach nach "MSDN SHBrowseForFolder" suchen. Sollte sofort etwas
ausspucken, das musst du nun aber selber machen ;)

Mit den HWND bei der BROWSEINFO weis ich nicht ob man das Elternfenster auf NULL haben
kann musst du ausprobieren.

Auf jeden fall solltest du dir die BROWSEINFO Struktur, SHBrowseForFolder Funktion und
SHGetPathFromIDList Funktion näher anschauen.

Best wishes
FBIagent
 
Zuletzt bearbeitet:
Hab ich gefunden. Fehler sind weg!
Aber leider öffnet sich kein Fenster! Sorry, aber ich bin eben noch ziemlicher Anfänger in C. Kannst du mir vielleicht sagen, woran das liegen könnte?

Gruß
Dorschty
 
Gibt es leider net viel Source! :-)
Hab ne Windows-Forms Anwendung und wenn ich auf einen Button Clicke soll er das eben ausführen! Hab in das Button_click event nur deinen Quelltext reingeschrieben

Gruß
Dorschty
 
Oh Sorry... Fehlinformation! Die Fehler sind doch net weg! Ist nur noch ein großer... und zwar, das er die include nicht findet! :-):-) Dann ist die falsch und ich muss mal die richtige suchen.

Gruß
Dorschty
 
Zurück