• Sábado 20 de Abril de 2024, 02:32

Autor Tema:  abrir una ventana de exploracion (file browser)  (Leído 3286 veces)

rompecabezas

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
abrir una ventana de exploracion (file browser)
« en: Miércoles 16 de Diciembre de 2009, 15:18 »
0
Hay alguna instruccion en c++ que me permita abrir una ventana de exploracion?

Tengo un boton "examinar", y quiero que al apretarlo se me abra una ventana que me permita recorrer el sistema de ficheros y seleccionar un archivo.

Alguna sugerencia? gracias!

lair

  • Miembro MUY activo
  • ***
  • Mensajes: 213
  • Nacionalidad: mx
    • Ver Perfil
Re: abrir una ventana de exploracion (file browser)
« Respuesta #1 en: Viernes 18 de Diciembre de 2009, 00:15 »
0
Hola.

builder tiene una pestania que se llama dialog, de esta puedes tomar un openfiledialog no re cuerdo bien el nombre de componente pero es algo asi

suerte

rompecabezas

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: abrir una ventana de exploracion (file browser)
« Respuesta #2 en: Viernes 18 de Diciembre de 2009, 11:40 »
0
gracias! si es ese... ahora solo me falta saber como utilizarlo, jeje

donde puedo cambiar el directorio raiz por defecto?

si es que no tengo ni idea...

Dante_2010

  • Nuevo Miembro
  • *
  • Mensajes: 2
  • Nacionalidad: uy
    • Ver Perfil
Re: abrir una ventana de exploracion (file browser)
« Respuesta #3 en: Lunes 21 de Diciembre de 2009, 03:16 »
0
Hola mi estimado,procedo a pasarte el codigo que yo uso para abrir este dialogo estandart :comp:

Citar
char pstrFileName[256];    //la ruta del fichero
                   char pstrFileTitle[256]; //el titulo del documento a abrir
                   static OPENFILENAME ofn ; // la estructura que se utiliza (nota 1)

//Lo siguiente sera en este orden:
//1)Descripicion del fichero a buscar
//2)la extencion de ejemplo
//3)la extension real
//4)otros tipos de ficheros separados por


                   static TCHAR szFilter[] = TEXT ("Text Files (*.TXT)*.txt")  
                               TEXT ("ASCII Files (*.ASC)*.asc")
                               TEXT ("All Files (*.*)*.*") ;
                               ofn.lStructSize       = sizeof (OPENFILENAME) ; //tamaño de la estructura
                               ofn.hwndOwner         = hDlg ; //el nombre del HWND en el procedure
                               ofn.hInstance         = NULL ; //la instancia de la aplicacion(poner NULL)
                                ofn.lpstrFilter       = szFilter ;//los parametros de la estructura szFilter
                                ofn.lpstrCustomFilter = NULL ;//alguna especificacion que desconosco
                                ofn.nMaxCustFilter    = 0 ;
                                ofn.nFilterIndex      = 0 ;
// La ruta del directorio inicial(NULL es el directorio defecto)
                                ofn.lpstrFile         = NULL ;
                                ofn.nMaxFile          = MAX_PATH ;
//el nombre del archivo a abrir por defecto
                                ofn.lpstrFileTitle    = NULL ;          
                                ofn.nMaxFileTitle     = MAX_PATH ;
                                ofn.lpstrInitialDir   = NULL ;
                                ofn.lpstrTitle        = NULL ;
// Las banderas de formato,revisar en la API Win32
                                ofn.Flags             = 0 ;                                            
                                ofn.nFileOffset       = 0 ;
                                ofn.nFileExtension    = 0 ;
//la extencion del archivo por defecto
                                ofn.lpstrDefExt       = TEXT ("txt") ;
                                ofn.lCustData         = 0L ;
                                ofn.lpfnHook          = NULL ;
                                ofn.lpTemplateName    = NULL ;
//la ventana padre de este cuadro de dialogo estandart
                                ofn.hwndOwner         = hDlg ;
//las dos variables del principio
                                ofn.lpstrFile         = pstrFileName ;
                                ofn.lpstrFileTitle    = pstrFileTitle;
//flags para tratar el cuadro de dialogo
                                ofn.Flags             = OFN_HIDEREADONLY | OFN_CREATEPROMPT ;
//funcion final para pasar los parametros a la estructura y almacenarlos
                                GetOpenFileName (&ofn) ;

nota 1:la razon de que sea static es que la estructura la declare dentro de un switch  :ph34r:

nota 2:esto puede ser utilizado en muchos lugares,por ejemplo en WinMain,luego de crear la ventana,y antes de mostrarla
o inclusive y mejor aun dentro de un WndProc( LRESULT CALLBACK WndProc(HWND hWnd,UINT iMsg,WPARAM wParam,LPARAM lParam))
o dentro de un dlg proc (BOOL CALLBACK dlgProc(lo mismo que wndProc)) :clown:

espero que te sea util,cualquier consulta a las ordenes :hola:  :hola:  :hola:

rompecabezas

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: abrir una ventana de exploracion (file browser)
« Respuesta #4 en: Lunes 21 de Diciembre de 2009, 10:22 »
0
gracias!