|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2000
Città: Lecce (Prov.)
Messaggi: 227
|
[VisualC++]: selezionare una cartella
Sapete se esiste l'equivalente della classe CFileDialog per selezionare però non un file, bensì una cartella?
Mi aspetto che ci sia, e dovrebbe consentirmi di muovermi nelle risorse del computer mediante l'approccio 'ad albero', con le crocette per espandere le cartelle, fino a quella desiderata. Qualcuno può aiutarmi? Denghiu! |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Non so dirti se a livello di MFC esiste una qualche classe che faccia da "wrapper" a questa funzione.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 27-06-2006 alle 12:44. |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ho visto sul VC++ e mi sembra che non ci sia una classe MFC apposita che gestisca la SHBrowseForFolder.
Comunque ti posto questo semplice esempio: Codice:
#define STRICT
#include <windows.h>
#include <shlobj.h>
INT APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevious, LPSTR lpszCmdLine, INT iCmdShow)
{
BROWSEINFO bi;
LPITEMIDLIST lpiil;
CHAR szPath[MAX_PATH];
ZeroMemory (&bi, sizeof (BROWSEINFO));
bi.lpszTitle = "Seleziona un path";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
lpiil = SHBrowseForFolder (&bi);
if (lpiil != NULL)
{
if (SHGetPathFromIDList (lpiil, szPath))
{
MessageBox (NULL, szPath, "Path selezionato", MB_OK);
}
}
return 0;
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Messaggi: 357
|
Codice:
BROWSEINFO bi = { 0 };
bi.lpszTitle = _T("Scegli la directory");
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if ( pidl != 0 ){
TCHAR path[MAX_PATH];
if(SHGetPathFromIDList(pidl, path)){
FaiQualcosa(path);
}
}
edit: non avevo visto la risposta di andbin |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2000
Città: Lecce (Prov.)
Messaggi: 227
|
Ok...grazie 1000, ci provo subito.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:14.



















