[Solucionado]Maximziar una Ventana GUI junto a los Elementos

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

[Solucionado]Maximziar una Ventana GUI junto a los Elementos

Mensaje 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.
Última edición por dacu el 03 Dic 2012, 21:11, editado 1 vez en total.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Maximziar una Ventana GUI junto a los Elementos.

Mensaje 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).
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
dacu
Hacker del Foro
Mensajes: 106
Registrado: 20 May 2010, 00:09

Re: Maximziar una Ventana GUI junto a los Elementos.

Mensaje por dacu »

Justo lo que quería. Muchas Gracias. Voy a seguir con mis aplicaciones.

Un placer.

Saludos.
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Maximziar una Ventana GUI junto a los Elementos.

Mensaje 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.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder