Page 1 sur 1
[R] Taille minimum pour une boite de dialogue.
Posté : lun. 25 janv. 2010 09:52
par eric
Bonjour,
J'aimerais pouvoir forcer une boite de dialogue à ne pas dépasser une taille mini lorsqu'elle est redimensionnée.
Tout cela pour éviter que les éléments de cette boite de dialogue (boutons, textes, etc) ne se chevauchent lors de la réduction de la taille de la boite de dialogue par l'utilisateur.
Je ne sais pas si une option existe déjà ou s'il faut creuser plus loin.
Merci
Re: [..] Taille minimum pour une boite de dialogue.
Posté : lun. 25 janv. 2010 11:28
par eric
Ou peut être autre solution, que les éléments de la boite de dialogue ne bougent pas pendant le redimensionnement de celle ci.
Il disparaîtront de l'écran si c'est trop petit mais ne se chevaucheront pas.
Mais je ne sais pas non plus comment faire ça.
Merci
Re: [..] Taille minimum pour une boite de dialogue.
Posté : mar. 26 janv. 2010 10:14
par eric
Voici un petit code pour se faire une idée du problème :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
$rep = GUICreate(" Titre", 750, 600, 150, 20, $WS_THICKFRAME + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX)
; listview
$listview = GUICtrlCreateListView("col1|col2|col3|col4|col5|col6", 10, 10, 730, 450, $LVS_SINGLESEL, $LVS_EX_REGIONAL + $LVS_EX_FULLROWSELECT + $LVS_EX_GRIDLINES)
; groupe
GUICtrlCreateGroup("Options", 10, 465, 180, 105)
; Bouton 1
GUICtrlCreateButton("Bouton 1", 20, 485, 60)
; Bouton 2
GUICtrlCreateRadio("Bouton 2", 20, 515)
; Bouton 3
GUICtrlCreateRadio("Bouton 3", 20, 540)
; Bouton 4
GUICtrlCreateButton("Bouton 4", 220, 490, 150)
; Bouton 5
GUICtrlCreateButton("Bouton 5", 220, 530, 200)
; Bouton 6
GUICtrlCreateButton("Bouton 6", 400, 490, 80)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
Re: [..] Taille minimum pour une boite de dialogue.
Posté : mar. 26 janv. 2010 14:25
par FuriousFred
Bien le bonjour,
Trouvé dans l'aide d'autoit !
Il te faut régler les options d'autoit pour que les controls de la GUI ne bougent pas lors du redimmensionnement de ton interface (désolé pour le vocabulaire pauvre de cette phrase).
Les options d'autoit se règle avec "AutoItSetOption"
L'option à régler est "GUIResizeMode" <-- la façon dont l'interface va se comporter lors d'un redimmensionnement
La valeur à donner, je vais t'épargner d'aller la chercher toi même, c'est "802"
Donc tu ajoute la ligne de code suivante au début du script et tes boutons ne bougeront plus d'un poil lors du redimmensionnement:
Ceci dit, je ne peut que te conseiller d'aller lire l'aide d'autoit, et de la retourner dans tout les sens avant de crier au secour sur le forum. Ravi d'avoir aidé.
FuriousFred (content d'avoir pour la première foi sur ce forum, résolu une demande d'aide

)
Re: [..] Taille minimum pour une boite de dialogue.
Posté : mar. 26 janv. 2010 15:21
par eric
Bonjour FuriousFred,
Merci c'est exactement ce que je cherchais.
Ceci dit, je ne peut que te conseiller d'aller lire l'aide d'autoit, et de la retourner dans tout les sens avant de crier au secour sur le forum
Je le fait régulièrement, mais il y a tellement de choses que ce n'est pas toujours facile à trouver.
Au cas ou quelqu'un aurait aussi une technique pour limiter la taille d'une fenêtre ça pourrait être sympa aussi, pour mes connaissances personnelles.
Merci en tout cas.
Re: [R] Taille minimum pour une boite de dialogue.
Posté : mer. 27 janv. 2010 12:31
par eric
Je creuse un peu cette histoire de taille mini.
J'ai bien trouvé un truc mais ça augmente la taille de la fenêtre si elle devient trop petite mais ça ne bloque pas une si la taille mini est atteinte.
C'est entre le While et le Wend
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
AutoItSetOption("GUIResizeMode", 834)
$rep = GUICreate(" Titre", 750, 600, 150, 20, $WS_THICKFRAME + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX)
; listview
$listview = GUICtrlCreateListView("col1|col2|col3|col4|col5|col6", 10, 10, 730, 450, $LVS_SINGLESEL, $LVS_EX_REGIONAL + $LVS_EX_FULLROWSELECT + $LVS_EX_GRIDLINES)
GUICtrlSetResizing($listview, 96)
; groupe
GUICtrlCreateGroup("Options", 10, 465, 180, 105)
; Bouton 1
GUICtrlCreateButton("Bouton 1", 20, 485, 60)
; Bouton 2
GUICtrlCreateRadio("Bouton 2", 20, 515)
; Bouton 3
GUICtrlCreateRadio("Bouton 3", 20, 540)
; Bouton 4
GUICtrlCreateButton("Bouton 4", 220, 490, 150)
; Bouton 5
GUICtrlCreateButton("Bouton 5", 220, 530, 200)
; Bouton 6
GUICtrlCreateButton("Bouton 6", 400, 490, 80)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
$taille = WinGetPos($rep) ; obtenir la position et la taille de la fenêtre
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $taille[2]<500 ; si largeur < à 500
WinMove($rep,"",$taille[0],$taille[1],500) ; redimensionner à largeur 500
Case $taille[3]<400 ; si hauteur < à 400
WinMove($rep,"",$taille[0],$taille[1],"",400) ; redimensionner à hauteur 400
EndSelect
WEnd
Re: [R] Taille minimum pour une boite de dialogue.
Posté : mer. 27 janv. 2010 15:30
par Tlem
Il me semble bien de tête qu'il y à sur le forum un message qui traite de ce cas.
Il permet de limiter la taille du redimentionnement de la fenêtre.
Je vous laisse chercher, car en ce moment je n'ai pas le temps.

Re: [R] Taille minimum pour une boite de dialogue.
Posté : jeu. 28 janv. 2010 13:48
par eric
Bonjour,
Malgré plusieurs recherches je n'ai pas trouvé le sujet qui traitait de ce cas.
Au cas où quelqu'un tombe dessus, je suis preneur.
Merci
Re: [R] Taille minimum pour une boite de dialogue.
Posté : ven. 29 janv. 2010 01:00
par Tlem
Je savais bien que j'avais fait un truc la dessus ...
http://www.autoitscript.fr/forum/viewto ... f=3&t=1979
Re: [R] Taille minimum pour une boite de dialogue.
Posté : ven. 29 janv. 2010 09:59
par eric
Merci Tlem, je vais étudier tout ça.