Página 1 de 1

[Solucionado]Maximziar una Ventana GUI junto a los Elementos

Publicado: 22 Nov 2012, 15:16
por dacu
Buenas, Me e pasado varios días buscando en Internet la forma de Crear una Guicreate que se pueda maximizar y que todos los componentes se auto ajusten con ella a la resolución de la pantalla o bien poner el ratón en el borde de la GUIcreate y hacerla lo grande que uno quiera y que todo se valla ajustando solo.

Poner que una Guicreate se haga grande es fácil, lo que pasa es que los componentes se quedan donde están o se descolocan y queda fatal.

Espero que me podáis ayudar. Gracias.

Re: Maximziar una Ventana GUI junto a los Elementos.

Publicado: 26 Nov 2012, 10:17
por Ximorro
Para recolocar/escalar los controles cuando el formulario se redimensiona se usa la función GUICtrlSetResizing.

Por ejemplo en esta prueba que hice puedes ver que al cambiar el tamaño del formulario el input se hace largo/corto, el botón se mueve en horizontal para estar siempre a la derecha del formulario y la caja de texto (en realidad un explorador de internet) se redimensiona para tomar el resto del espacio disponible.

Pon alguna palabra y dale a buscar, y luego redimensiona y verás que el texto del navegador se actualiza en tiempo real.

Código: Seleccionar todo

#include <GUIConstants.au3>
#include <WindowsConstants.au3>
;#include <ie.au3>;no es necesario, solo si usas funciones ie

$GuiDict = GUICreate("RAE", 300, 451, 193, 115, BitOr($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX))
$IEObj = ObjCreate("Shell.Explorer.2")
$IEctrl = GUICtrlCreateObj($IEObj, 0, 26, 300, 408)
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
$Input_palabra = GUICtrlCreateInput("", 3, 3, 220, 20)
GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKLEFT + $GUI_DOCKHEIGHT)
$botBuscar = GUICtrlCreateButton("Buscar", 226, 0, 73, 25, 0)
GUISetState(@SW_SHOW)

$palabra=""
While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
	  Case $GUI_EVENT_CLOSE
		 Exit
	  Case $botBuscar
		 $palabra=GUICtrlRead($Input_palabra)
		 ; $url="http://buscon.rae.es/draeI/SrvltGUIBusUsual?TIPO_HTML=2&TIPO_BUS=3&LEMA=" & $palabra
		 $url="http://lema.rae.es/drae/srv/search?type=3&origen=RAE&val=" & $palabra
		 $IEObj.navigate2($url)
   EndSwitch
WEnd
Con un poco de pericia puede hacerse que parezca que los controles se redimensionan, el problema es que sólo cambiarás el tamaño del control, no es que lo escales (o sea fuentes, bordes, etc seguirán siendo iguales).

Re: Maximziar una Ventana GUI junto a los Elementos.

Publicado: 26 Nov 2012, 17:21
por dacu
Justo lo que quería. Muchas Gracias. Voy a seguir con mis aplicaciones.

Un placer.

Saludos.

Re: Maximziar una Ventana GUI junto a los Elementos.

Publicado: 27 Nov 2012, 09:16
por Ximorro
Me alegro de que sea lo que querías.

Fíjate que en la ayuda de cada función de creación de control (los GuiCtrlCreateXXXX) por el final de la explicación siempre dice cuál es el "Resizing" por defecto del control, generalmente ya tienen algo asignado, por eso se te movían o escalaban sin haberlo especificado.