Browser de archivos con vista previa

28/04/2005 - 22:42 por Max | Informe spam
Estimados:

Para una aplicación que estoy desarrollando, necesito que el usuario
indique el nombre de un archivo en el sistema de archivos del equipo en que
trabaja. Para hacer el proceso más amigable he incorporado el típico browser
de archivos que se usa comúnmente junto al menú [Archivo] > [Abrir], a
través de la función GetOpenFileName de la librería comdlg32.dll.

Dado que el usuario final trabajará básicamente con archivos gráficos,
me gustaría saber si existe una función API que permitiera hacer lo mismo,
pero que además me muestre una vista previa de la imagen contenida en el
archivo antes de dar el [OK]. Creo haver visto esta funcionalidad en algunas
aplicaciones y me sería muy útil incorporarla a mi proyecto actual.

Si alguien sabe algo al respecto, le estaría muy agradecido

Max Castro V.
Santiago - Chile

Preguntas similare

Leer las respuestas

#1 Max
29/04/2005 - 17:32 | Informe spam
Entiendo que estos cuadros de diálogo son configurables, que puedo
cambiarles el título, la ubicación predeterminada y las extensiones de
archivo que reconocerá... sin embargo lo que necesito es, al parecer, una
funcionalidad distinta que me atrevería a decir no está en esta función
(GetOpenFileName). De ahí la pregunta de si alguien conoce otra que pueda
mostrar vistas preliminares.

Max


<Hernán> escribió en el mensaje
news:
"Max" escribía:

>Estimados:
>
> Para una aplicación que estoy desarrollando, necesito que el usuario
>indique el nombre de un archivo en el sistema de archivos del equipo en


que
>trabaja. Para hacer el proceso más amigable he incorporado el típico


browser
>de archivos que se usa comúnmente junto al menú [Archivo] > [Abrir], a
>través de la función GetOpenFileName de la librería comdlg32.dll.
>
> Dado que el usuario final trabajará básicamente con archivos


gráficos,
>me gustaría saber si existe una función API que permitiera hacer lo


mismo,
>pero que además me muestre una vista previa de la imagen contenida en el
>archivo antes de dar el [OK]. Creo haver visto esta funcionalidad en


algunas
>aplicaciones y me sería muy útil incorporarla a mi proyecto actual.
>
> Si alguien sabe algo al respecto, le estaría muy agradecido
>
>Max Castro V.
>Santiago - Chile
>

Todas las cajas de diálogo de la biblioteca de diálogos comunes son
"customizables".

Vos podés agregar tu propio diálogo al diálogo (DS_CONTROL), y manejarlo
a través de una función (un hook), que le pasas como argumento a
GetOpenFileName(). Así es como lo hacen estas aplicaciones...

Hernán (29)
quilmes (ar)
Respuesta Responder a este mensaje
#2 Max
29/04/2005 - 17:32 | Informe spam
Entiendo que estos cuadros de diálogo son configurables, que puedo
cambiarles el título, la ubicación predeterminada y las extensiones de
archivo que reconocerá... sin embargo lo que necesito es, al parecer, una
funcionalidad distinta que me atrevería a decir no está en esta función
(GetOpenFileName). De ahí la pregunta de si alguien conoce otra que pueda
mostrar vistas preliminares.

Max


<Hernán> escribió en el mensaje
news:
"Max" escribía:

>Estimados:
>
> Para una aplicación que estoy desarrollando, necesito que el usuario
>indique el nombre de un archivo en el sistema de archivos del equipo en


que
>trabaja. Para hacer el proceso más amigable he incorporado el típico


browser
>de archivos que se usa comúnmente junto al menú [Archivo] > [Abrir], a
>través de la función GetOpenFileName de la librería comdlg32.dll.
>
> Dado que el usuario final trabajará básicamente con archivos


gráficos,
>me gustaría saber si existe una función API que permitiera hacer lo


mismo,
>pero que además me muestre una vista previa de la imagen contenida en el
>archivo antes de dar el [OK]. Creo haver visto esta funcionalidad en


algunas
>aplicaciones y me sería muy útil incorporarla a mi proyecto actual.
>
> Si alguien sabe algo al respecto, le estaría muy agradecido
>
>Max Castro V.
>Santiago - Chile
>

Todas las cajas de diálogo de la biblioteca de diálogos comunes son
"customizables".

Vos podés agregar tu propio diálogo al diálogo (DS_CONTROL), y manejarlo
a través de una función (un hook), que le pasas como argumento a
GetOpenFileName(). Así es como lo hacen estas aplicaciones...

Hernán (29)
quilmes (ar)
Respuesta Responder a este mensaje
#3 Hernán
29/04/2005 - 17:58 | Informe spam
"Max" escribía:

Entiendo que estos cuadros de diálogo son configurables, que puedo
cambiarles el título, la ubicación predeterminada y las extensiones de
archivo que reconocerá... sin embargo lo que necesito es, al parecer, una
funcionalidad distinta que me atrevería a decir no está en esta función
(GetOpenFileName). De ahí la pregunta de si alguien conoce otra que pueda
mostrar vistas preliminares.

Max




Si vos lees la doc para el tipo OPENFILENAME, verás que existe un campo
Flags, que podría tener los valores OFN_ENABLETEMPLATE Or OFN_ENABLEHOOK
Or OFN_EXPLORER.

También vas a ver un campo lpnfHook, que vos tendrías que inicializar
con una función de tipo OFNHookProc (i.e., con un valor y lista de
parámetros similar), que sirve para controlar el "child-dialog" que vas
a incrustar en el diálogo común.

Por último, el campo lpTemplateName, te permite identificar el template
de la caja que quieres agregar al diálogo común. Este template (un
RT_DIALOG), reside en el árbol de recursos de tu aplicación (o del
módulo apuntado por el campo hInstance).

Hernán (29)
quilmes (ar)
Respuesta Responder a este mensaje
#4 Hernán
29/04/2005 - 17:58 | Informe spam
"Max" escribía:

Entiendo que estos cuadros de diálogo son configurables, que puedo
cambiarles el título, la ubicación predeterminada y las extensiones de
archivo que reconocerá... sin embargo lo que necesito es, al parecer, una
funcionalidad distinta que me atrevería a decir no está en esta función
(GetOpenFileName). De ahí la pregunta de si alguien conoce otra que pueda
mostrar vistas preliminares.

Max




Si vos lees la doc para el tipo OPENFILENAME, verás que existe un campo
Flags, que podría tener los valores OFN_ENABLETEMPLATE Or OFN_ENABLEHOOK
Or OFN_EXPLORER.

También vas a ver un campo lpnfHook, que vos tendrías que inicializar
con una función de tipo OFNHookProc (i.e., con un valor y lista de
parámetros similar), que sirve para controlar el "child-dialog" que vas
a incrustar en el diálogo común.

Por último, el campo lpTemplateName, te permite identificar el template
de la caja que quieres agregar al diálogo común. Este template (un
RT_DIALOG), reside en el árbol de recursos de tu aplicación (o del
módulo apuntado por el campo hInstance).

Hernán (29)
quilmes (ar)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida