IceDuck Geschrieben 3. März 2006 Geschrieben 3. März 2006 hallo zusammen.... ich möchte einen browse-butten programmieren, wo dann ein dialog aufgeht, wie bei "Datei -> Öffnen", nur statt einer datei auszuwählen soll ein verzeichnis ausgewählt werden. anschließend wird der pfad dann in ein eingabefeld geschrieben. gibt es eine klasse (wie CFileDialog) nur mit dem unterschied, dass man bei dem dialog nicht eine datei auswählen muss, sondern nur ein verzeichnis? bitte um hilfe. danke im voraus. Gruß Scotty
Klotzkopp Geschrieben 3. März 2006 Geschrieben 3. März 2006 Keine Klasse, aber eine Funktion: SHBrowseForFolder.
Filou Geschrieben 3. März 2006 Geschrieben 3. März 2006 char szPath[128]; char szFolder[_MAX_PATH+1]; BROWSEINFO browsinfo; LPITEMIDLIST pidl; memset(szFolder,0,sizeof(szFolder)); browsinfo.hwndOwner = this->m_hWnd; browsinfo.ulFlags = 0; browsinfo.pidlRoot = NULL; browsinfo.pszDisplayName = szFolder; browsinfo.lpszTitle = "Bitte geben Sie den Ordner an ...."; browsinfo.lpfn = NULL; pidl = SHBrowseForFolder(&browsinfo); if(pidl) { SHGetPathFromIDList(pidl, szPath); CString csOrdner = CString(szPath); } UpdateData(FALSE);
Klotzkopp Geschrieben 3. März 2006 Geschrieben 3. März 2006 Zu erwähnen wäre noch, dass man SHBrowseForFolder erst benutzen kann, wenn man COM für diesen Thread initialisiert hat (CoInitialize/CoInitializeEx). Außerdem muss man die LPITEMIDLIST, die man zurückbekommt, mit CoTaskMemFree freigeben, sonst gibt's ein Speicherleck.
IceDuck Geschrieben 3. März 2006 Autor Geschrieben 3. März 2006 danke an euch allen. ich habs grad ausprobiert und es klappte wunderbar!!!!!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden