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 Zitieren
Klotzkopp Geschrieben 3. März 2006 Geschrieben 3. März 2006 Keine Klasse, aber eine Funktion: SHBrowseForFolder. Zitieren
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); Zitieren
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. Zitieren
IceDuck Geschrieben 3. März 2006 Autor Geschrieben 3. März 2006 danke an euch allen. ich habs grad ausprobiert und es klappte wunderbar!!!!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.