Page 1 sur 1

[R] Bloquer redimensionnement en largeur et limiter la hauteur

Posté : sam. 18 mars 2017 10:13
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

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

Posté : sam. 18 mars 2017 13:59
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

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

Posté : sam. 18 mars 2017 14:23
par Amesamana
Nickel,

Merci mikell :wink:

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

Posté : dim. 19 mars 2017 09:31
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