Page 1 of 1

Controlar tamaño ventana cGetfile [SOLUCIONADO]

Posted: Wed Dec 30, 2020 10:34 am
by Ramón J.
Hola a todos

Tengo una duda: A través de un diálogo llamo a la siguiente función, creo una serie de carpetas y muestro el contenido de la última carpeta con cGetfile, pero la ventana ocupa toda la pantalla y no da opción a minimizarla ni a reducir el tamaño.

El código es el siguiente:

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT+"\"+apunte)
msgalert("Ya existe ese apunte")

aFiles:=Array( ADir( Curdrive()+":\"+cfILES+"\"+"*.*", aFiles ) )
if len(aFiles)==0
msgInfo("La carpeta esta vacía. Debe añadir ficheros asociados")
endif


cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,)
else
if lMkDir(Curdrive()+":\"+cRaiz+"\"+Carpetasat+"\"+apunte)
MsgInfo( "Debe añadir los ficheros asociados")
cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,)
endif
endif
endif

El resultado es este:

Image

Ya digo, ocupa toda la pantalla. ¿Hay alguna forma de controlar el tamaño de la ventana?

Un saludo y gracias

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 1:52 pm
by cnavarro
La imagen no se ve
Yo uso
https://postimages.org/

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 2:02 pm
by Ramón J.
Hola, CNavarro

A ver si ahora se ve la imagen
Image

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 2:20 pm
by Antonio Linares
Ramón,

Prueba así:

#define OFN_ENABLESIZING 0x00800000

cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 2:32 pm
by Ramón J.
Hola, Antonio

He introducido lo que me has indicado y la ventana sigue igual.

El código completo del archivo es este:


#include "fivewin.ch"
#define OFN_ENABLESIZING 0x00800000

function ANEXA(cnum, cnom, nLibro, dfecha, cCentro, cDoc, cPrio, cClasedoc)


Local cRaiz:="\COMPARTIDO\REGSAT\WINSAT\DOCUMENTAL"
LOCAL CarpetaSAT:=alltrim(cnum)+"-"+alltrim(cnom)
Local libro:=strzero(nlibro,6)
LOCAL fecha:=strzero(day(dfecha),2)+strzero(month(dfecha),2)+str(year(dfecha),4)
Local Clasedoc:=alltrim(cClasedoc)
Local aFiles, aDir
Local cFolder := cRaiz+"\"+CarpetaSAT+"\"+Libro+"\"+fecha+"\"+Clasedoc
Local apunte :=libro+"-"+fecha
Local cFiles := cRaiz+"\"+CarpetaSAT+"\"+apunte
SET CENTURY ON
SET DATE TO FRENCH


//----------------Si no existe, se crea carpeta de la SAT------------------

if ! HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )
if lMkDir( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )
MsgInfo( "La carpeta de la SAT no existía y se ha creado")
endif
endif

//-------- Comprobado que existe la carpeta raiz, creamos las subcarpetas--------------

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT )

if HB_DirExists( Curdrive()+":\"+cRaiz+"\"+CarpetaSAT+"\"+apunte)
msgalert("Ya existe ese apunte")

aFiles:=Array( ADir( Curdrive()+":\"+cfILES+"\"+"*.*", aFiles ) )
if len(aFiles)==0
msgInfo("La carpeta esta vacía. Debe añadir ficheros asociados")
endif

cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
//cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,)
else
if lMkDir(Curdrive()+":\"+cRaiz+"\"+Carpetasat+"\"+apunte)
MsgInfo( "Debe añadir los ficheros asociados")
// (cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,.t.,,),1)
cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
endif
endif
endif


return nil

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 2:38 pm
by Antonio Linares
Ramón,

Según esta documentacion de Microsoft:
https://docs.microsoft.com/en-us/window ... nfilenamea
hay que usar OFN_ENABLESIZING para poder redimensionar la caja de diálogo.

Este valor lo recibe la función cGetFile() en el séptimo parámetro:
DWORD dwFlags = IF( hb_pcount() > 6 && HB_ISNUM( 7 ), hb_parnl( 7 ), 2060 );

No lo he probado, solo me he limitado a buscar esa información.

Otra opción es verificar si la función cGetFile() sigue usando la función en C ComDlgHkFile() y desde ahi modificar el tamaño.
Si la primera solución no te funciona habrá que investigar esta segunda opción.

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 2:43 pm
by Ramón J.
Gracias, Antonio

Ahí me has pillado. Eso ya está fuera de mis conocimientos. La verdad es que no sé cómo solucionar ese problema.

De todas maneras, agradezco tu atención

un saludo

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 2:56 pm
by cnavarro
Prueba esto tal y como te lo pongo y dime si la ventana también aparece maximizada

Code: Select all

 local cExt  := "*"
 ? cGetFile( "Archivos ( *. " + cExt + ") |*." + cExt + "|", "Seleccione Fichero", , ".\" )

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 3:13 pm
by Ramón J.
Hola, CNavarro

Ahora sale pequeña, centrada y se puede redimensionar con el puntero.

Image

Y al cerrar sale esto:

Image

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 3:39 pm
by Ramón J.
CNavaro, lo acabo de probar de nuevo y sigue igual, es decir, pantalla completa y sin poder redimensionar.

Tiene un comportamiento extraño

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 3:59 pm
by karinha

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 5:06 pm
by Ramón J.
Gracias, João, pero no vale para mi caso. Además, como le he comentado a Antonio, no funciona con cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,), que es la solución que buscaba. es decir, la imagen siguiente (figurada):

Image

Como podrás ver, lo que pretende es que al abrir una diálogo de edición de registro sobre un xbrowse, se cree una ruta de carpetas para luego abrir la última creada y pegar archivos en ella.

Te agradezco tu atención

Re: Controlar tamaño ventana cGetfile

Posted: Wed Dec 30, 2020 9:25 pm
by karinha

Re: Controlar tamaño ventana cGetfile [SOLUCIONADO]

Posted: Thu Dec 31, 2020 12:00 pm
by Ramón J.
Gracias, João.

Feliz Año Nuevo a todos
Un saludo