supersonic Posted December 15, 2011 Share Posted December 15, 2011 Hi everybody, I'm trying to use a fixed minimal window size for a resizable window. If I resize the window greater than the minimum then the control resizes as well. But if I resize the window less then the minimum then the control size stuck somwhere. Here's the code: expandcollapse popup#include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> Local Const $___WINDOWS_HEIGHT = 400 Local Const $___WINDOWS_WIDTH = 600 Local $hGUI = GUICreate("TEST", $___WINDOWS_WIDTH, $___WINDOWS_HEIGHT, -1, -1, BitOR($WS_CAPTION, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_POPUP, $WS_SIZEBOX, $WS_SYSMENU)) Local $hGUI_L0 = GUICtrlCreateLabel("", 0, 0, 600, 100) GUICtrlSetBkColor($hGUI_L0, 0xFF0000) GUICtrlSetResizing($hGUI_L0, 2 + 4 + 32 + 512) GUIRegisterMsg($WM_SIZE, "_WM_SIZE") GUISetState(@SW_SHOW, $hGUI) Local $hMsg = 0 While 1 $hMsg = GUIGetMsg(1) Switch $hMsg[1] Case $hGUI Switch $hMsg[0] Case $GUI_EVENT_CLOSE Exit EndSwitch EndSwitch WEnd GUIDelete($hGUI) Func _WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam) ; #ForceRef $hWnd, $iMsg, $iwParam, $ilParam Switch $hWnd Case $hGUI Local $iHeight = _WinAPI_GetWindowHeight($hWnd) Local $iWidth = _WinAPI_GetWindowWidth($hWnd) If $iHeight < $___WINDOWS_HEIGHT + 38 Or $iWidth < $___WINDOWS_WIDTH + 16 Then WinMove($hWnd, "", (@DesktopWidth - ($___WINDOWS_WIDTH + 16)) / 2, (@DesktopHeight - ($___WINDOWS_HEIGHT + 38)) / 2, $___WINDOWS_WIDTH + 16, $___WINDOWS_HEIGHT + 38) EndIf EndSwitch Return $GUI_RUNDEFMSG EndFunc What should I do to avoid this behavior? Anybody any ideas? Greets, -supersonic. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 15, 2011 Moderators Share Posted December 15, 2011 supersonic, Perhaps if you used the correct way to set a minimum size for the GUI you might find it works better: #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> Local Const $___WINDOWS_HEIGHT = 400 Local Const $___WINDOWS_WIDTH = 600 Local $hGUI = GUICreate("TEST", $___WINDOWS_WIDTH, $___WINDOWS_HEIGHT, -1, -1, BitOR($WS_CAPTION, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_POPUP, $WS_SIZEBOX, $WS_SYSMENU)) Local $hGUI_L0 = GUICtrlCreateLabel("", 0, 0, 600, 100) GUICtrlSetBkColor($hGUI_L0, 0xFF0000) GUICtrlSetResizing($hGUI_L0, 2 + 4 + 32 + 512) GUIRegisterMsg($WM_GETMINMAXINFO, "WM_GETMINMAXINFO") GUISetState(@SW_SHOW, $hGUI) Local $hMsg = 0 While 1 $hMsg = GUIGetMsg(1) Switch $hMsg[1] Case $hGUI Switch $hMsg[0] Case $GUI_EVENT_CLOSE Exit EndSwitch EndSwitch WEnd GUIDelete($hGUI) Func WM_GETMINMAXINFO($hwnd, $Msg, $wParam, $lParam) $tagMaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam) DllStructSetData($tagMaxinfo, 7, $___WINDOWS_WIDTH) ; min X DllStructSetData($tagMaxinfo, 8, $___WINDOWS_HEIGHT) ; min Y Return 0 EndFunc ;==>WM_GETMINMAXINFO Any luck? 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 Link to comment Share on other sites More sharing options...
supersonic Posted December 15, 2011 Author Share Posted December 15, 2011 Melba, thank you for pointing me in the right direction and helping me out once again. I like the way you bringing my lack of knowledge into daylight... Greets, -supersonic. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 15, 2011 Moderators Share Posted December 15, 2011 (edited) supersonic, I like the way you bringing my lack of knowledge into daylightAt least I do it with a smile! Glad I could help you. M23 Edit: If you want to see how badly I got resizing wrong the other day, just take a look here. Edited December 15, 2011 by Melba23 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 Link to comment Share on other sites More sharing options...
guinness Posted December 15, 2011 Share Posted December 15, 2011 (edited) If you want to see how badly I got resizingYou and I didn't have a clue either. Edit: Grammar mistake. Edited December 15, 2011 by guinness UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
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