Controlar tamaño ventana cGetfile [SOLUCIONADO]
Controlar tamaño ventana cGetfile [SOLUCIONADO]
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
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
Last edited by Ramón J. on Thu Dec 31, 2020 5:40 pm, edited 1 time in total.
FWH 20.12 BCC7
Re: Controlar tamaño ventana cGetfile
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.
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.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Controlar tamaño ventana cGetfile
Ramón,
Prueba así:
#define OFN_ENABLESIZING 0x00800000
cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
Prueba así:
#define OFN_ENABLESIZING 0x00800000
cGetFile( "Todos los archivos (*.*)|*.*", "Contenido de la carpeta",, Cfiles,,,OFN_ENABLESIZING,,)
Re: Controlar tamaño ventana cGetfile
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
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Controlar tamaño ventana cGetfile
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.
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
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
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
Re: Controlar tamaño ventana cGetfile
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.
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.
Re: Controlar tamaño ventana cGetfile
Hola, CNavarro
Ahora sale pequeña, centrada y se puede redimensionar con el puntero.
Y al cerrar sale esto:
Ahora sale pequeña, centrada y se puede redimensionar con el puntero.
Y al cerrar sale esto:
FWH 20.12 BCC7
Re: Controlar tamaño ventana cGetfile
CNavaro, lo acabo de probar de nuevo y sigue igual, es decir, pantalla completa y sin poder redimensionar.
Tiene un comportamiento extraño
Tiene un comportamiento extraño
FWH 20.12 BCC7
Re: Controlar tamaño ventana cGetfile
João Santos - São Paulo - Brasil
Re: Controlar tamaño ventana cGetfile
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
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
Re: Controlar tamaño ventana cGetfile
João Santos - São Paulo - Brasil
Re: Controlar tamaño ventana cGetfile [SOLUCIONADO]
Gracias, João.
Feliz Año Nuevo a todos
Un saludo
Feliz Año Nuevo a todos
Un saludo
FWH 20.12 BCC7