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:
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
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.
Y al cerrar sale esto:
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):
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