Ciao a tutti!
dovrei realizzare una tasto che premuto mi apre una specie di esplora risporse che mi permette di selezionare una cartella...
Poi io sfrutterò il path della cartella restituito... per salvare dei file al suo interno.
Grazie
VKR VVoVe:
Ciao a tutti!
dovrei realizzare una tasto che premuto mi apre una specie di esplora risporse che mi permette di selezionare una cartella...
Poi io sfrutterò il path della cartella restituito... per salvare dei file al suo interno.
Grazie
VKR VVoVe:
Io solitamente uso l'API GetOpenFileName .
C'è anche un esempio:
szFile conterrà il path + il nome del file, se ha te serve solo il path basterà fare una substringa che si ferma all'ultimo \.codice:OPENFILENAME ofn; // common dialog box structure char szFile[260]; // buffer for file name HWND hwnd; // owner window HANDLE hf; // file handle // Initialize OPENFILENAME ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFile = szFile; // // Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself. // ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; // Display the Open dialog box. if (GetOpenFileName(&ofn)==TRUE) hf = CreateFile(ofn.lpstrFile, GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL);
Se stai usando MFC non saprei aiutarti e non conosco l'api che crea la FileDialog specifica per selezionare le cartelle.
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)
Credo che quello che stai cercando sia proprio questo:
SHBrowseForFolder()
Qui trovi la descrizione e a fondo pagina anche un esempio di utilizzo.
http://msdn.microsoft.com/library/de...eforfolder.asp
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77] elf90 g77
[C++ /WinAPI] DevC++ VisualC++
Con le MFC se non ricordo male devi creare un oggetto di tipo CFileDialog (che estende CDialog) ed usare uno dei suoi metodi per mostrare il dialogo stesso.Controllati la documentazione della classe.I metodi di CFileDialog non sono altro che degli wrapper per l'API che ti ha consigliato netarrow.CiaoOriginariamente inviato da Xadoom
Credo che quello che stai cercando sia proprio questo:
SHBrowseForFolder()
Qui trovi la descrizione e a fondo pagina anche un esempio di utilizzo.
http://msdn.microsoft.com/library/de...eforfolder.asp
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)
Ho usato semplicemente le API di windows facendo così:
Funziona benissimo e fa comparire una di quelle finestrelle in cui si può selezionare la directory.codice:BROWSEINFO bi; LPITEMIDLIST pidl; bi.hwndOwner = hwnd; bi.pidlRoot = NULL; bi.pszDisplayName = 0; bi.lpszTitle = TEXT("Imposta la directory"); bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS; bi.lpfn = NULL; bi.lParam = 0; pidl = SHBrowseForFolder(&bi); SHGetPathFromIDList(pidl,szDir);
Windows Xp
[Java]
[PHP]Notepad++
[Fortran90-77] elf90 g77
[C++ /WinAPI] DevC++ VisualC++