C/Visual C - Diálogo estandar para seleccionar directorios

 
Vista:

Diálogo estandar para seleccionar directorios

Publicado por Silvia (8 intervenciones) el 02/03/2002 13:09:15
¿Hay alguna formaen Visual C++ de abrir un cuadro de diálogo estandar como los CFileDialog, CFontDialog, etc.. pero que permita al usuario seleccionar un directorio en vez de un fichero ? Supongo que si, pero no lo encuentro.

Agradecería cualquier información sobre ello.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Diálogo estandar para seleccionar directorios

Publicado por VICTOR CARREÑO SOTELO (13 intervenciones) el 08/05/2002 18:33:22
Silvia:

Tu solución es la siguiente:

BROWSEINFO m_bi; // Estructura para buscar carpetas
ITEMIDLIST* piid = NULL; // Estructura despues de buscar carpetas
char szPath[MAX_PATH]; // Variable para la carpeta seleccionada

ZeroMemory ( &m_bi, sizeof(BROWSEINFO) );
m_bi.hwndOwner = GetSafeHwnd(); // Puntero de ventana padre
m_bi.lpszTitle = _T ( \"Seleccione una carpeta\" ); // Texto
m_bi.ulFlags = BIF_RETURNONLYFSDIRS ; // Sólo directorios

// Llamar a la función shell
piid = ::SHBrowseForFolder ( &m_bi );

// Obtener la carpeta seleccionada
if ( piid && ::SHGetPathFromIDList(piid, szPath) )
{
// Ok, el nombre de la carpeta de elegida se almaceno en la
// variable \'szPath\'
AfxMessageBox ( szPath );
}

Espero haberte ayudado

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar