Controlar tamaño ventana cGetfile [SOLUCIONADO]

Post Reply
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Controlar tamaño ventana cGetfile [SOLUCIONADO]

Post 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
Last edited by Ramón J. on Thu Dec 31, 2020 5:40 pm, edited 1 time in total.
FWH 20.12 BCC7
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controlar tamaño ventana cGetfile

Post by cnavarro »

La imagen no se ve
Yo uso
https://postimages.org/
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Post by Ramón J. »

Hola, CNavarro

A ver si ahora se ve la imagen
Image
FWH 20.12 BCC7
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Controlar tamaño ventana cGetfile

Post by Antonio Linares »

Ramón,

Prueba así:

#define OFN_ENABLESIZING 0x00800000

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

Antonio Linares
www.fivetechsoft.com
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Post 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
FWH 20.12 BCC7
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Controlar tamaño ventana cGetfile

Post 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.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Post 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
FWH 20.12 BCC7
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Controlar tamaño ventana cGetfile

Post 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", , ".\" )
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Post 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
FWH 20.12 BCC7
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Post 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
FWH 20.12 BCC7
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Controlar tamaño ventana cGetfile

Post by karinha »

João Santos - São Paulo - Brasil
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile

Post 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
FWH 20.12 BCC7
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Controlar tamaño ventana cGetfile

Post by karinha »

João Santos - São Paulo - Brasil
Ramón J.
Posts: 79
Joined: Mon Feb 13, 2006 8:23 pm

Re: Controlar tamaño ventana cGetfile [SOLUCIONADO]

Post by Ramón J. »

Gracias, João.

Feliz Año Nuevo a todos
Un saludo
FWH 20.12 BCC7
Post Reply