Page 1 sur 1

[R] Limiter la redimension d'une GUI

Posté : dim. 23 nov. 2008 13:46
par minoui
Bon c'est simple J'ai une fenêtre qui peut être redimensionner mais je voudrais que l'on ne puisse pas la faire plus petite qu'une certaine taille

Merci :wink:

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 14:17
par Tlem
Il vous faut dans ce cas gérer l'évènement $GUI_EVENT_RESIZED dans votre boucle While et contrôler que la taille de la GUI soit pas plus petite que ...

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 14:31
par minoui
ok merci mais euu comment récupéré la taille du GUI ?

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 14:56
par Tlem
En cherchant dans l'aide vous trouverez ceci : WinGetPos ou ceci WinGetClientSize.

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 16:54
par minoui
Cette méthode ne marche pas très bien. Y a t'il une méthode qui empêche purement et simplement de redimensionner au delà d'un taille minimum ?

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 17:26
par Tlem
Que voulez-vous dire par ne marche pas très bien ?

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 19:16
par Tlem
Le mieux aurait été de donner l'intégralité du code. ;)

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $aUtil_MinMax[4]

GUICreate('WM_GETMINMAXINFO',400,400,-1,-1,$WS_SIZEBOX)
GUISetState()
InitMinMax(200,200,400,400)   ; C'est ici que l'on règle les valeurs Min et Max de la fenêtre.

While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd


Func InitMinMax($x0,$y0,$x1,$y1)
    Local Const $WM_GETMINMAXINFO = 0x24
    $aUtil_MinMax[0]=$x0
    $aUtil_MinMax[1]=$y0
    $aUtil_MinMax[2]=$x1
    $aUtil_MinMax[3]=$y1
    GUIRegisterMsg($WM_GETMINMAXINFO,'MY_WM_GETMINMAXINFO')
EndFunc

Func MY_WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
    Local $minmaxinfo = DllStructCreate('int;int;int;int;int;int;int;int;int;int',$lParam)
    DllStructSetData($minmaxinfo,7,$aUtil_MinMax[0]); min X
    DllStructSetData($minmaxinfo,8,$aUtil_MinMax[1]); min Y
    DllStructSetData($minmaxinfo,9,$aUtil_MinMax[2]); max X
    DllStructSetData($minmaxinfo,10,$aUtil_MinMax[3]); max Y
    Return $GUI_RUNDEFMSG
EndFunc

Re: [..] Limiter la redimension

Posté : dim. 23 nov. 2008 19:23
par minoui
Peut - tu m'expliquer l'utilisation de $WM_GETMINMAXINFO Stp

TLEM mercii je me fait Ch*** depuis un bout de temps a cause de cet foutu touche F5 (sisi j'avais oublier de rafraichir) :x :x :x :x

Re: [R] Limiter la redimension d'une GUI

Posté : lun. 24 nov. 2008 02:33
par ani
intégralité du code ? pas suivit

minoui la réponse est devant vous
on décompose le terme
WM = message fenêtre (window message)
get = voir ?
Min = Minimum
Max = Maximum
Info = Information

le minimum et maximum nous retourne les point x, y, hauteur,largeur
on voit les information x,y,hauteur,largeur de la fenetre (défois faut pas trop chercher ;) )


bonne continuation

Re: [R] Limiter la redimension d'une GUI

Posté : lun. 24 nov. 2008 11:30
par minoui
Je pense que Tlem voulait dire que ton code ne permet que de redimntionner de haut en bas et pas de gauche a droite
Quand a moi je voulais comprendre ces lignes :
► Afficher le textecode1
► Afficher le texteCode 2
► Afficher le texteCode 3
Merci :wink:

Re: [R] Limiter la redimension d'une GUI

Posté : lun. 24 nov. 2008 13:05
par Tlem

Code : Tout sélectionner

InitMinMax(200,200,400,400)
Lance la fonction InitMinMax avec les 4 valeurs données en argument, c'est à dire 200, 200, 400 et 400.

Code : Tout sélectionner

Local Const $WM_GETMINMAXINFO = 0x24
Fixe la valeur de $WM_GETMINMAXINFO avec la valeur 0x24

Code : Tout sélectionner

GUIRegisterMsg($WM_GETMINMAXINFO,'MY_WM_GETMINMAXINFO')
Lance la fonction GUIRegisterMsg() pour la valeur $WM_GETMINMAXINFO et la re-dirige vers la fonction MY_WM_GETMINMAXINFO().

Code : Tout sélectionner

Return $GUI_RUNDEFMSG
Renvois la valeur $GUI_RUNDEFMSG à la commande qui à lancé la fonction (c'est à dire GUIRegisterMsg()). Cette valeur est une valeur fixe qui est déterminée dans GUIConstantsEx.au3.

Re: [R] Limiter la redimension d'une GUI

Posté : lun. 24 nov. 2008 19:48
par minoui
Merci de ta réponse mais heuu
Tlem a écrit :Code:
Local Const $WM_GETMINMAXINFO = 0x24
Fixe la valeur de $WM_GETMINMAXINFO avec la valeur 0x24
Je suis pas non plus débile j'avais compris :mrgreen: Je voulais dire :

Quel est la valeur de $WM_GETMINMAXINFO et quel sont les choses quelle renvoie :?:
Tlem a écrit :

Code : Tout sélectionner

Return $GUI_RUNDEFMSG
Renvois la valeur $GUI_RUNDEFMSG à la commande qui à lancé la fonction (c'est à dire GUIRegisterMsg()). Cette valeur est une valeur fixe qui est déterminée dans GUIConstantsEx.au3.
Peut-tu me donner plus d'infos sur cette variable stp :roll:

Re: [R] Limiter la redimension d'une GUI

Posté : lun. 24 nov. 2008 20:38
par Tlem
minoui a écrit :Je suis pas non plus débile j'avais compris :mrgreen: Je voulais dire :
Quel est la valeur de $WM_GETMINMAXINFO et quel sont les choses quelle renvoie
Heuuu là, je ne vois pas comment faire plus 'débile' comme explication ... :lol:
On va essayer 8) :
La valeur de $WM_GETMINMAXINFO est : 0x24 (valeur hexadécimale de 36) :P
Et cette variable retourne la valeur qu'on lui à attribué ... C'est à dire ............. 0x24 :lol: :lol: :lol:
minoui a écrit :Peut-tu me donner plus d'infos sur cette variable stp :roll:
Au sujet de la variable $GUI_RUNDEFMSG, éditez le fichier C:\Program Files\AutoIt3\Include\GUIConstantsEx.au3 et regardez ligne 24. :mrgreen:
Je vous fait grâce de la même réponse que si dessus ... :lol:

Re: [..] Limiter la redimension d'une GUI

Posté : mer. 26 nov. 2008 19:00
par minoui
Ha je croyait que $WM_GETMINMAXINFO etait une variable heuu comment dire ... spéciale et pas une variable simple
Dsl :wink:

Re: [R] Limiter la redimension d'une GUI

Posté : lun. 16 juil. 2012 16:01
par Anthony
Oui mais peut on appliquer cette limitation à "WordPad" par exemple ?

Code : Tout sélectionner

InitMinMax(200,200,400,400)