Bonjour,
Si vous vous êtes déjà lancé dans des programmes assez complexes, vous avez déjà du vous confronter au problème du redimensionnement des fenêtres enfants.
Cet UDF est donc fait pour vous, il s'utilise de la même façon que GUICtrlSetResizing excepté qu'il prend le handle d'une fenêtre au lieu du ctrlID en paramètre.
Utilisation :
Ajouter une fenêtre à redimensionner :
Arrêter de redimensionner une fenêtre :
► Afficher le texteExemple
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "_Resize.au3"
Opt("GUIOnEventMode", 1)
Global $Gui
Global $GuiEnfant
Global $Bouton
Global $Etat = False
$Gui = GUICreate("test", 300, 300, -1, -1, $WS_OVERLAPPEDWINDOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
$GuiEnfant = GUICreate("", 200, 200, 50, 50, $WS_CHILD, -1, $Gui)
$Bouton = GUICtrlCreateButton("Start resize", 90, 170, 100, 20)
GUICtrlSetOnEvent($Bouton, "BoutonClick")
GUICtrlSetResizing($Bouton, BitOR($GUI_DOCKBOTTOM, $GUI_DOCKRIGHT, $GUI_DOCKHEIGHT))
GUISetBkColor(0xFF0000, $GuiEnfant)
GUISetState(@SW_SHOW, $GuiEnfant)
GUISetState(@SW_SHOW, $Gui)
While(True)
Sleep(10)
WEnd
Func BoutonClick()
$Etat = Not $Etat
If($Etat) Then
_Resize_AddWindow($GuiEnfant, BitOR($GUI_DOCKRIGHT, $GUI_DOCKWIDTH))
GUICtrlSetData($Bouton, "Stop resize")
Else
_Resize_StopWindow($GuiEnfant)
GUICtrlSetData($Bouton, "Start resize")
EndIf
EndFunc
Func quit()
Exit
EndFunc
Pour fonctionner, l UDF à besoin de
--> _GUIRegisterMsg <-- et de WindowsEx.au3 (voir topic concerné et pièce jointe)
Si vous ne voulez pas utiliser _GUIRegisterMsg.au3, changez les lignes
et
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679