[R] Bloquer redimensionnement en largeur et limiter la hauteur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

[R] Bloquer redimensionnement en largeur et limiter la hauteur

#1

Message par Amesamana »

Bonjour,

Alors voilà je vous sollicite car je ne trouve pas la réponse de ma recherche.
Je voudrais bloquer la largeur d'une gui et limiter la modification en hauteur

par exemple :
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 600, 400,-1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX))
GUICtrlSetResizing($Form1, $GUI_DOCKAUTO)
$Button1 = GUICtrlCreateButton("Button1", 200, 152, 169, 33)
GUICtrlSetResizing($Button1, $GUI_DOCKAUTO)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit

   EndSwitch
WEnd
Dans cet exemple je voudrais que 600 reste fixe et que 400 ne puisse être plus grand et pas plus petit que 200 par exemple.

Est-ce possible ?

Merci
Modifié en dernier par Amesamana le sam. 18 mars 2017 14:23, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Bloquer redimensionnement en largeur et limiter la hauteur

#2

Message par mikell »

Yes you can :twisted:
Voilà le script-type - charge à toi de l'adapter à ta gui

Code : Tout sélectionner

#include <GUIConstants.au3>
;Const $WM_GETMINMAXINFO = 0x24

GUICreate("Test GUI",500,500,-1,-1,BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX))
GUISetState (@SW_SHOW)
GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")

While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
    
Func MY_WM_GETMINMAXINFO($hWnd, $Msg, $wParam, $lParam)
    $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int",$lParam)
    DllStructSetData($minmaxinfo,7,400) ; min X
    DllStructSetData($minmaxinfo,8,250) ; min Y
    DllStructSetData($minmaxinfo,9,600) ; max X
    DllStructSetData($minmaxinfo,10,700) ; max Y
    Return 0
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [R] Bloquer redimensionnement en largeur et limiter la hauteur

#3

Message par Amesamana »

Nickel,

Merci mikell :wink:
mdanielm
Membre émérite
Membre émérite
Messages : 254
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: [R] Bloquer redimensionnement en largeur et limiter la hauteur

#4

Message par mdanielm »

Avec WM_PAINT et le bouton:

;#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;#include <MsgBoxConstants.au3>
#include <WinAPI.au3>
#include <math.au3>

; Width=600 et 200<=Height<=400

Global $Form1, $Button1
Exemple()

Func Exemple()
    $Form1 = GUICreate("Form1", 600, 400,-1, -1, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX))
   GUICtrlSetResizing($Form1, $GUI_DOCKAUTO)
   $Button1 = GUICtrlCreateButton("Button1", 200, 152, 169, 33)
   ;GUICtrlSetResizing($Button1, $GUI_DOCKAUTO)
   GUISetState(@SW_SHOW)

   GUIRegisterMsg($WM_PAINT, "Paint")

   Do
   Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc

func Paint()
   Local $coord = WinGetPos($Form1)

   $coord[2] = 600

        $coord[3] = _Min(_Max($coord[3], 200), 400)
        ; ou mieux(?):
   ;if $coord[3]<200 then
   ;  $Coord[3]=200
   ;Elseif $coord[3]>400 then
   ;  $Coord[3]=400
   ;EndIf

   _WinAPI_MoveWindow ($Form1, $coord[0], $coord[1], $coord[2], $coord[3], true)

EndFunc

 
Répondre