scriptomator Posted January 13, 2011 Posted January 13, 2011 Is there a way to set the minimum size of a gui? I want it to be resizeable, but if it get too small the gui won't allow you to make it smaller.
JoHanatCent Posted January 13, 2011 Posted January 13, 2011 Is there a way to set the minimum size of a gui? I want it to be resizeable, but if it get too small the gui won't allow you to make it smaller. Try: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt('MustDeclareVars', 1) Dim $MinW = 150, $MinH = 150, $size MySize() Func MySize() Local $msg GUICreate("My GUI", $MinW, $MinH, 50, 50, $WS_SIZEBOX) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop $size = WinGetPos("My GUI") If $size[2] < $MinW Then WinMove("My GUI", "", $size[0], $size[1], $MinW, $size[3]) If $size[3] < $MinH Then WinMove("My GUI", "", $size[0], $size[1], $size[2], $MinH) WEnd GUIDelete() EndFunc ;==>MySize
Moderators Melba23 Posted January 13, 2011 Moderators Posted January 13, 2011 scriptomator,Another way: #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $GUIMINWID = 300, $GUIMINHT = 100 ; set your restrictions here Global $GUIMAXWID = 800, $GUIMAXHT = 500 GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO") $hGUI = GUICreate("Test", 500, 500, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX)) GUISetState() $aPos = WinGetPos($hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_MAXIMIZE WinMove($hGUI, "", $aPos[0], $aPos[1], $aPos[2], $aPos[3]) ; resets intial size Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam) $tagMaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam) DllStructSetData($tagMaxinfo, 7, $GUIMINWID) ; min X DllStructSetData($tagMaxinfo, 8, $GUIMINHT) ; min Y DllStructSetData($tagMaxinfo, 9, $GUIMAXWID ); max X DllStructSetData($tagMaxinfo, 10, $GUIMAXHT ) ; max Y Return 0 EndFunc ;==>WM_GETMINMAXINFOIf you are not used to coding with GUIRegisterMsg, I recommend the GUIRegisterMsg tutorial in the Wiki. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
scriptomator Posted January 13, 2011 Author Posted January 13, 2011 Thank you for the help. Melba23's worked but JoHanatCent's didn't.
scriptomator Posted January 13, 2011 Author Posted January 13, 2011 @ Melba23i looked at your location "Where never lark or even eagle flew" and i am guessing england!
Moderators Melba23 Posted January 13, 2011 Moderators Posted January 13, 2011 scriptomator,My body is usually found in England, but my spirit is forever here. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
JoHanatCent Posted January 13, 2011 Posted January 13, 2011 Thank you for the help. Melba23's worked but JoHanatCent's didn't.G sorry if my script did not work for you because it is working for me!The only differance is I did not set a Maximum because that was not required at the time of the request.
scriptomator Posted January 13, 2011 Author Posted January 13, 2011 G sorry if my script did not work for you because it is working for me!The only differance is I did not set a Maximum because that was not required at the time of the request. thanks anyway. the effort is what counts.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now