• Viernes 1 de Noviembre de 2024, 16:40

Autor Tema:  Seleccionar Carpeta De Un Dialogo.  (Leído 2232 veces)

sam147

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Seleccionar Carpeta De Un Dialogo.
« en: Miércoles 9 de Marzo de 2005, 11:31 »
0
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


sam147

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Seleccionar Carpeta De Un Dialogo.
« Respuesta #2 en: Miércoles 9 de Marzo de 2005, 15:49 »
0
Muchas gracias Diodo !!!  ;)
   Voy a pegarme con ello a ver si consigo solucionarlo.  :comp:
Saludos  :hola:

sam147

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Seleccionar Carpeta De Un Dialogo.
« Respuesta #3 en: Jueves 10 de Marzo de 2005, 12:53 »
0
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.