Programación General > Visual C++

 Seleccionar Carpeta De Un Dialogo.

(1/1)

sam147:
Hola a todos,
   Tengo un problema y es que no encuentro la manera de crear un diágolo para que un usuario selecione una caperta y luego yo operar sobre esa carpeta.
   Cuando queria trabajar sobre un archivo seleccionado por el usuario lo hacia mediante...

CFileDialog dialogFich(false,"",NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filtro);

if(dialogFich.DoModal()!=IDOK)return 0;

Pero no consigo ver la manera de hacer lo mismo para que el usuario selecione una carpeta.

Muchas gracias.  :D

Diodo:
Hola

En esta pagina tienes varios ejemplos:

http://www.codeguru.com/Cpp/W-D/dislog/dia...lectingfolders/

espero que te sea de ayuda

un saludo  :hola:   :D

sam147:
Muchas gracias Diodo !!!  ;)
   Voy a pegarme con ello a ver si consigo solucionarlo.  :comp:
Saludos  :hola:

sam147:
Problema solucionado !!!  :D

Explico como lo he realizado por si a alguien le puede servir...

Al final he utilizado la funcion SHBrowseForFolder, que es la
que recomiendo Microsoft para seleccionar una carpeta desde
un dialgo.

void CDescargarArchivo::OnFileOpen()
{
typedef char StringType[MAX_PATH];
BROWSEINFO bi;
StringType Folder;
StringType FullPath;
char Title[] = "Selecciona el Directorio Destino";

// Initialization code for the BROWSEINFO struct:
bi.hwndOwner = this->m_hWnd;
bi.pszDisplayName = Folder;
bi.lpszTitle = Title;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.pidlRoot = NULL;
bi.lpfn = NULL;

if (SHGetPathFromIDList(::SHBrowseForFolder(&bi), FullPath))
{
m_sGuardarComo = FullPath; // Here we assume the m_Dir is a variable
associated with an edit box
UpdateData(FALSE); // Put data into edit boxes (or do whatever you
want to do with it)
}

}

Saludos.

Navegación

[0] Índice de Mensajes

Ir a la versión completa