momar33 Posted July 18, 2007 Share Posted July 18, 2007 In the code below, if you hit the spell button to open a child window, then maximize the child window, then try to maximize the parent window, it doesn't maximize all the way. I am sure it has something to do with my _UpdatChildGui function, specificly this line: WinMove($child[$i], '', -4, -4, $array[2], ($array[3]-76)) Unfortunately i don't know why it is doing this. Other ideas for resizing child guis are wlecome as well. Thanks Here is the code: expandcollapse popup#include <GUIConstants.au3> ;#include <database.au3> ;#include <variables.au3> Global $child[1000] Global $spellEdit Local $parentWidth = 800 Local $parentHeight = 500 Local $parentLeft = -1 Local $parentTop = -1 Local $toolBarWidth = $parentWidth Local $toolBarHeight = 30 Local $toolBarLeft = 0 Local $toolBarTop = 0 Local $mainWidth = $parentWidth Local $mainHeight = $parentHeight - 50 Local $mainLeft = 0 Local $mainTop = $toolBarHeight ;AutoItSetOption("MustDeclareVars", 1) Opt("GUIOnEventMode", 1) ; Change to OnEvent mode Global $parentGui = GUICreate("Spell Inventory", $parentWidth, $parentHeight, $parentLeft, $parentTop, $WS_OVERLAPPEDWINDOW) _CreateEvents() GUISetState() _CreateMenu() _CreateToolbar($toolBarWidth, $toolBarHeight, $toolBarLeft, $toolBarTop) Global $mainGui=GUICreate("mainGui", $mainWidth, $mainHeight, 0, 30, $WS_CHILD, Default, $parentGui) GUISetState () While 1 Sleep(10) Wend Func _Exit() ;MsgBox(0, "", "test2" & @GUI_WINHANDLE) ;MsgBox(0, "", WinGetHandle($child[$numChildGuis])) If @GUI_WINHANDLE = $parentGui Then ;GUISwitch($parentGui) GuiDelete() Exit ElseIf @GUI_WINHANDLE = WinGetHandle($child[$numChildGuis]) Then ;MsgBox(0,"","test") GUISwitch(WinGetHandle($child[$numChildGuis])) GuiDelete() GUISetState(@SW_SHOW,$parentGui) EndIf EndFunc Func _MakeNewChild() Global $numChildGuis if $numChildGuis < 1000 then ;~ $gui[$x] = GUICreate("",200,90,100+$numChildGuis*5,100+$numChildGuis*5, BitOR($WS_POPUPWINDOW, $WS_CHILD),$WS_EX_TOOLWINDOW) ;~ ;$child = GUICreate("View Spells", 400, 350, 100, 0, BitOR($WS_OVERLAPPEDWINDOW, $WS_CHILD), Default, $mainGui) ;~ DllCall("user32.dll", "int", "SetParent", "hwnd", WinGetHandle($Gui[$x]), "hwnd", WinGetHandle($Main_GUI)) $child[$numChildGuis] = GUICreate("View Spells", 400, 350, 100+$numChildGuis*5, 0+$numChildGuis*5, $WS_OVERLAPPEDWINDOW, Default, $mainGui) DllCall("user32.dll", "int", "SetParent", "hwnd", WinGetHandle($child[$numChildGuis]), "hwnd", WinGetHandle($mainGui)) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") GUISetState() $numChildGuis = $numChildGuis +1 EndIf EndFunc Func _CreateMenu() ;-----File Menu----- Global $fileMenu = GuiCtrlCreateMenu ("File") Global $importMI = GuiCtrlCreateMenuitem ("Import File",$filemenu) Global $separator = GuiCtrlCreateMenuitem ("",$filemenu) Global $ppOptionsMenu = GuiCtrlCreateMenu ("Print Preview Options",$filemenu) Global $separator = GuiCtrlCreateMenuitem ("",$filemenu) Global $exitMI = GuiCtrlCreateMenuitem ("Exit",$filemenu) ;-----Tools Menu----- Global $toolsMenu = GuiCtrlCreateMenu ("Tools") Global $manageSpellbooksMI = GuiCtrlCreateMenuitem ("Manage Spellbooks",$toolsMenu) Global $manageSchoolsMI = GuiCtrlCreateMenuitem ("Manage Schools",$toolsMenu) Global $manageSpellsMI = GuiCtrlCreateMenuitem ("Manage Spells",$toolsMenu) Global $separator = GuiCtrlCreateMenuitem ("",$toolsMenu) Global $manageScrollsMI = GuiCtrlCreateMenuitem ("Manage Scrolls",$toolsMenu) Global $separator = GuiCtrlCreateMenuitem ("",$toolsMenu) Global $searchMI = GuiCtrlCreateMenuitem ("Search",$toolsMenu) ;-----Window Menu----- Global $windowMenu = GuiCtrlCreateMenu ("Window") Global $tileMI = GuiCtrlCreateMenuitem ("Tile",$windowMenu) Global $separator = GuiCtrlCreateMenuitem ("",$windowMenu) Global $cascadeMI = GuiCtrlCreateMenuitem ("Cascade",$windowMenu) ;-----About Menu----- Global $aboutMenu = GuiCtrlCreateMenu ("About") Global $helpTopicsMI = GuiCtrlCreateMenuitem ("Help Topics",$aboutMenu) Global $separator = GuiCtrlCreateMenuitem ("",$aboutMenu) Global $aboutMI = GuiCtrlCreateMenuitem ("About SI",$aboutMenu) EndFunc Func _CreateToolbar($width, $height, $left, $top) Global $toolbar=GUICreate("toolbar", $width, $height, $left, $top, $WS_CHILD, Default, $parentGui) Global $viewSpell = GUICtrlCreateButton ("Spell", 0,0,50,20) GUICtrlSetOnEvent(-1, "_MakeNewChild") GUISetState () EndFunc Func _CreateEvents() GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") GUISetOnEvent($GUI_EVENT_RESIZED, "_UpdateChildGui") GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_UpdateChildGui") GUISetOnEvent($GUI_EVENT_RESTORE, "_UpdateChildGui") EndFunc Func _UpdateChildGui() Local $state Local $array = WinGetPos($parentGui) WinMove($mainGui, '', 0, 30, ($array[2]-8), ($array[3]-84)) ConsoleWrite("--"&$child[0]&@CR) If $child[0] <> 0 then For $i = 0 to $numChildGuis step 1 ConsoleWrite("----"&$i&@CR) $state = WinGetState($child[$i]) If BitAnd($state, 32) Then WinMove($child[$i], '', -4, -4, $array[2], ($array[3]-76)) EndIf Next EndIf EndFunc Link to comment Share on other sites More sharing options...
Danny35d Posted July 19, 2007 Share Posted July 19, 2007 (edited) You were right the problem is with you _UpdatChildGui function, but is not with WinMove() the problem is with the For...Next loop.you are using For $i = 0 to $numChildGuis step 1instead ofFor $i = 0 to $numChildGuis - 1 step 1The For...Next was looping one time too many Edited July 19, 2007 by Danny35d AutoIt Scripts:NetPrinter - Network Printer UtilityRobocopyGUI - GUI interface for M$ robocopy command line Link to comment Share on other sites More sharing options...
momar33 Posted July 20, 2007 Author Share Posted July 20, 2007 Awesome. Thanks man! 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