Page 1 sur 1
[R] Resizing sur une GUI Fille
Posté : mer. 03 nov. 2010 15:07
par TommyDDR
Bonjour a tous !
Mon problème du jour (^^') est que je créé une GUI qui contient des controles ainsi qu'une GUI Fille qui elle même contient des controles (vous me suivez toujours ?

)
Donc, je met mes GUICtrlSetResizing sur les controles de la 1ere GUI puis de la GUI Fille mais lors du changement de taille de ma fenêtre principale, la taille de la GUI Fille ne change pas et donc les controles qu'elle contient non plus.
Ma question est donc : Peut on effectuer un GUICtrlResizing sur une GUI Fille (je me doute bien que ca n'est pas cette fonction qu'il faut utiliser) pour qu'elle se redimensionne avec sa GUI mère ?
Voici un exemple illustrant mon problème (je cherche à ce que le bouton prenne la place restante MEME lors du redimensionnement en laissant celui-ci DANS la GUI Fille)
► Afficher le texteCode
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $GuiFille
Dim $Bouton[2]
Dim $TreeView
Dim $TreeItem[100]
;~ Création de la GUI
$Gui = GUICreate("test", 300, 300, -1, -1, $WS_OVERLAPPEDWINDOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
;~ Création des divers controles
$TreeView = GUICtrlCreateTreeView(5, 5, 100, 290, BitOR($TVS_HASLINES, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
For $i = 0 To 9
$TreeItem[$i] = GUICtrlCreateTreeViewItem(Random(0, 2000, 1), $TreeView)
Next
For $i = 10 To 99
$TreeItem[$i] = GUICtrlCreateTreeViewItem(Random(0, 2000, 1), $TreeItem[Random(0, 9, 1)])
Next
For $i = 0 To 9
GUICtrlSetState($TreeItem[$i], $GUI_EXPAND)
Next
$Bouton[0] = GUICtrlCreateButton("Bouton", 110, 275, 185, 20)
;~ Ajout des Resizing
GUICtrlSetResizing($TreeView, BitOR($GUI_DOCKWIDTH, $GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKBOTTOM))
GUICtrlSetResizing($Bouton[0], BitOR($GUI_DOCKHEIGHT, $GUI_DOCKLEFT, $GUI_DOCKRIGHT, $GUI_DOCKBOTTOM))
GUISetState()
;~ Création de la gui fille
$GuiFille = GUICreate("Fille", 185, 265, 110, 5, $WS_CHILD, -1, $Gui)
;~ Création des divers controles
$Bouton[1] = GUICtrlCreateButton("Bouton GUI Fille", 0, 0, 185, 265)
;~ Ajout des Resizing
GUICtrlSetResizing($Bouton[1], $GUI_DOCKBORDERS)
GUISetState()
While(True)
Sleep(10)
WEnd
Func quit()
Exit
EndFunc
Merci.
Edit : Pour éviter un double post (et par la même occasion de me faire passer un savon par Tlem ^^)
Je post ici une "Pseudo solution"
Cette solution fait exactement ce que je veux mais pas en temps réel (il faut relâcher le clic souris pour que cela soit pris en compte)
► Afficher le textecode
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $GuiFille
Dim $Bouton[2]
Dim $TreeView
Dim $TreeItem[100]
;~ Création de la GUI
$Gui = GUICreate("test", 300, 300, -1, -1, $WS_OVERLAPPEDWINDOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
GUISetOnEvent($GUI_EVENT_RESIZED, "Resize")
;~ Création des divers controles
$TreeView = GUICtrlCreateTreeView(5, 5, 100, 290, BitOR($TVS_HASLINES, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
For $i = 0 To 9
$TreeItem[$i] = GUICtrlCreateTreeViewItem(Random(0, 2000, 1), $TreeView)
Next
For $i = 10 To 99
$TreeItem[$i] = GUICtrlCreateTreeViewItem(Random(0, 2000, 1), $TreeItem[Random(0, 9, 1)])
Next
For $i = 0 To 9
GUICtrlSetState($TreeItem[$i], $GUI_EXPAND)
Next
$Bouton[0] = GUICtrlCreateButton("Bouton", 110, 275, 185, 20)
;~ Ajout des Resizing
GUICtrlSetResizing($TreeView, BitOR($GUI_DOCKWIDTH, $GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKBOTTOM))
GUICtrlSetResizing($Bouton[0], BitOR($GUI_DOCKHEIGHT, $GUI_DOCKLEFT, $GUI_DOCKRIGHT, $GUI_DOCKBOTTOM))
GUISetState()
;~ Création de la gui fille
$GuiFille = GUICreate("Fille", 185, 265, 110, 5, $WS_CHILD, -1, $Gui)
;~ Création des divers controles
$Bouton[1] = GUICtrlCreateButton("Bouton GUI Fille", 0, 0, 185, 265)
;~ Ajout des Resizing
GUICtrlSetResizing($Bouton[1], $GUI_DOCKBORDERS)
GUISetState()
While(True)
Sleep(10)
WEnd
Func Resize()
Local $Taille = WinGetPos($Gui)
Local $w = $Taille[2]-131
Local $h = $Taille[3]-73
ToolTip($w & @CRLF & $h)
WinMove($GuiFille, "", 110, 5, $w, $h)
EndFunc
Func quit()
Exit
EndFunc
Je cherche donc un GUIRegisterMsg pour le redimensionnement de ma fenêtre.
ReMerci.
Re: [..] Resizing sur une GUI Fille
Posté : mer. 03 nov. 2010 15:23
par TommyDDR
Bon bah... double post
J'ai finalement résolu mon problème en testant les Messages Windows
C'était $WM_WINDOWPOSCHANGED
► Afficher le textecode
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $GuiFille
Dim $Bouton[2]
Dim $TreeView
Dim $TreeItem[100]
;~ Création de la GUI
$Gui = GUICreate("test", 300, 300, -1, -1, $WS_OVERLAPPEDWINDOW)
GUISetOnEvent($GUI_EVENT_CLOSE, "quit")
;~ Création des divers controles
$TreeView = GUICtrlCreateTreeView(5, 5, 100, 290, BitOR($TVS_HASLINES, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
For $i = 0 To 9
$TreeItem[$i] = GUICtrlCreateTreeViewItem(Random(0, 2000, 1), $TreeView)
Next
For $i = 10 To 99
$TreeItem[$i] = GUICtrlCreateTreeViewItem(Random(0, 2000, 1), $TreeItem[Random(0, 9, 1)])
Next
For $i = 0 To 9
GUICtrlSetState($TreeItem[$i], $GUI_EXPAND)
Next
$Bouton[0] = GUICtrlCreateButton("Bouton", 110, 275, 185, 20)
;~ Ajout des Resizing
GUICtrlSetResizing($TreeView, BitOR($GUI_DOCKWIDTH, $GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKBOTTOM))
GUICtrlSetResizing($Bouton[0], BitOR($GUI_DOCKHEIGHT, $GUI_DOCKLEFT, $GUI_DOCKRIGHT, $GUI_DOCKBOTTOM))
GUISetState()
GUIRegisterMsg($WM_WINDOWPOSCHANGED, "Resize")
;~ Création de la gui fille
$GuiFille = GUICreate("Fille", 185, 265, 110, 5, $WS_CHILD, -1, $Gui)
;~ Création des divers controles
$Bouton[1] = GUICtrlCreateButton("Bouton GUI Fille", 0, 0, 185, 265)
;~ Ajout des Resizing
GUICtrlSetResizing($Bouton[1], $GUI_DOCKBORDERS)
GUISetState()
While(True)
Sleep(10)
WEnd
Func Resize($hWnd, $Msg, $wParam, $lParam)
Local $Taille = WinGetPos($Gui)
Local $w = $Taille[2]-131
Local $h = $Taille[3]-73
ToolTip($w & @CRLF & $h)
WinMove($GuiFille, "", 110, 5, $w, $h)
EndFunc
Func quit()
Exit
EndFunc
Résolu.
Re: [R] Resizing sur une GUI Fille
Posté : mer. 03 nov. 2010 23:15
par Tlem
Aaaarghhh double post ...
Hé ben tient, vous l'aurez mérité.

Re: [R] Resizing sur une GUI Fille
Posté : jeu. 04 nov. 2010 13:58
par TommyDDR
Tlem, vous êtes un dieu ^^
Re: [R] Resizing sur une GUI Fille
Posté : ven. 05 nov. 2010 01:30
par Tlem
Pour les fourmis et les araignées qui vivent sous ma maison, sans doute, mais cela s'arrête là ...
Re: [R] Resizing sur une GUI Fille
Posté : ven. 05 nov. 2010 01:59
par bloodwolff
Même pour les fourmis et les araignées cela reste à voir

Re: [R] Resizing sur une GUI Fille
Posté : ven. 05 nov. 2010 07:56
par Tlem
Mouais, mais en ce qui me concerne, je ne pose pas de questions existentielles sur mon utilité sur le forum.

Re: [R] Resizing sur une GUI Fille
Posté : ven. 05 nov. 2010 15:48
par bloodwolff
Tu l'as lu sans y répondre

c'est ta réponse que je voulais car j'ai l'impression que tu passe plus de temps à corriger mes messages (citation,source,message inutile,etc) que cela te prendrais pour y répondre

Re: [R] Resizing sur une GUI Fille
Posté : ven. 05 nov. 2010 22:33
par Tlem
bloodwolff a écrit :Tu l'as lu sans y répondre
Quoi donc ?
bloodwolff a écrit :j'ai l'impression que tu passe plus de temps à corriger mes messages (citation,source,message inutile,etc) que cela te prendrais pour y répondre

C'est le rôle que je me suis attribué et que mes autres modérateurs suivent, car à force vous finirez probablement par faire naturellement ce qu'on vous suggère et nous n'aurons plus à le faire.
Peut être même que si un jour vous devenez modérateur, vous vous direz que c'est vraiment fatigant de toujours dire les mêmes choses, mais que pour avoir un forum le plus clean possible, vous n'avez pas le choix.

Re: [R] Resizing sur une GUI Fille
Posté : ven. 05 nov. 2010 22:47
par cutprod
Moi j'ai bien aimer le savon!!
trop bon!

Re: [R] Resizing sur une GUI Fille
Posté : sam. 06 nov. 2010 03:17
par bloodwolff
Tu l'as lu sans y répondre
questions existentielles sur mon utilité sur le forum
Re: [R] Resizing sur une GUI Fille
Posté : sam. 06 nov. 2010 13:33
par Tlem
Petit QCM :
Code : Tout sélectionner
Répondre par OUI ou par NON
A tu aider d'autres utilisateurs du forum ?
Participe tu à l'évolution du forum ?
Fait tu attention à la manière d'écrire tes réponses ?
Fait-tu des recherches lorsque toi ou un membre à besoin d'aide ?
Va-tu chercher des réponses sur le forum Anglais ?
Le nombre de OUI vous donnera une idée de votre utilité sur le forum.

Re: [R] Resizing sur une GUI Fille
Posté : sam. 06 nov. 2010 14:57
par bloodwolff
Répondre par OUI ou par NON
A tu aider d'autres utilisateurs du forum ? Je pense
Participe tu à l'évolution du forum ? J'essaie
Fait tu attention à la manière d'écrire tes réponses ? non ya tlem pour corriger sa
Fait-tu des recherches lorsque toi ou un membre à besoin d'aide ? oui
Va-tu chercher des réponses sur le forum Anglais ? oui