warum wird das gui immer größer?

  • hiho,

    hab ein gui, wo position und größe beim beenden gespeichert wird, und beim erneuten starten genau so wiederhergestellt werden soll.
    das komische ist, dass pro neustart das gui immer größer wird ... aber wieso?

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("GUIOnEventMode", 1)
    Global $ini = @scriptdir & "\WMDE.ini"
    Global $ToolTitle = "Window Management +"
    $x = IniRead($ini, "Settings", "x", "-1")
    $y = IniRead($ini, "Settings", "y", "-1")
    $w = IniRead($ini, "Settings", "w", "555")
    $h = IniRead($ini, "Settings", "h", "281")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    #Region ### START Koda GUI section ### Form=o:\autoscripts\window management\form1.kxf

    [/autoit][autoit][/autoit][autoit]

    $Form1_1 = GUICreate($ToolTitle, $w, $h, $x, $y, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU ,$DS_SETFOREGROUND, $WS_SIZEBOX), $WS_EX_TOPMOST)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Tab = GUICtrlCreateTab(0, 0, $w, $h)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $TabSheet1 = GUICtrlCreateTabItem("Windows")
    $ListView1 = GUICtrlCreateListView("", 3, 23, $w - 5, $h - 28, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT));BitOR($LVS_REPORT, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_HEADERDRAGDROP,$LVS_EX_FULLROWSELECT))
    $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_HEADERDRAGDROP)
    _GUICtrlListView_SetExtendedListViewStyle($ListView1, $exStyles)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKAUTO)

    [/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW, $Form1_1)

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _Exit()
    $WinPos = WinGetPos($Form1_1)
    IniWrite($ini, "Settings", "x", $WinPos[0])
    IniWrite($ini, "Settings", "y", $WinPos[1])
    IniWrite($ini, "Settings", "w", $WinPos[2])
    IniWrite($ini, "Settings", "h", $WinPos[3])
    Exit
    EndFunc

    [/autoit]
  • Nicht nur die Titelleiste, sondern auch die Rahmen ! Sonst wäre das GUI ja nicht auch breiter geworden.
    GUI ist eben nicht WINDOW. Und es heist WINMOVE !

    So haut es hin:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    Global $ini = @scriptdir & "\WMDE.ini"
    Global $ToolTitle = "Window Management +"
    $x = IniRead($ini, "Settings", "x", "-1")
    $y = IniRead($ini, "Settings", "y", "-1")
    $w = IniRead($ini, "Settings", "w", "555")
    $h = IniRead($ini, "Settings", "h", "281")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=o:\autoscripts\window management\form1.kxf

    [/autoit] [autoit][/autoit] [autoit]

    $Form1_1 = GUICreate($ToolTitle,555,281,-1,-1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU ,$DS_SETFOREGROUND, $WS_SIZEBOX), $WS_EX_TOPMOST)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Tab = GUICtrlCreateTab(0, 0, $w, $h)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $TabSheet1 = GUICtrlCreateTabItem("Windows")
    $ListView1 = GUICtrlCreateListView("", 3, 23, $w - 5, $h - 28, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT));BitOR($LVS_REPORT, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_HEADERDRAGDROP,$LVS_EX_FULLROWSELECT))
    $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_HEADERDRAGDROP)
    _GUICtrlListView_SetExtendedListViewStyle($ListView1, $exStyles)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKAUTO)

    [/autoit] [autoit][/autoit] [autoit]

    WinMove($Form1_1,"",$x,$y,$w,$h)
    GUISetState(@SW_SHOW, $Form1_1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    $WinPos = WinGetPos($Form1_1)
    IniWrite($ini, "Settings", "x", $WinPos[0])
    IniWrite($ini, "Settings", "y", $WinPos[1])
    IniWrite($ini, "Settings", "w", $WinPos[2])
    IniWrite($ini, "Settings", "h", $WinPos[3])
    Exit
    EndFunc

    [/autoit]

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Wie wäre es, "-1" ändern zu -1 ohne Anführungszeichen? Zahlen werden wohl manchmal nicht korrekt erkannt wenn sie in Strngs gespeichert sind

  • Ach, ja WinMove kann nicht zentrieren :) Also, die Größe, die man bei GUICreate angibt ist die Clientsize. Also kannst du auch die speichern :)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("GUIOnEventMode", 1)
    Global $ini = @scriptdir & "\WMDE.ini"
    Global $ToolTitle = "Window Management +"
    $x = IniRead($ini, "Settings", "x", "-1")
    $y = IniRead($ini, "Settings", "y", "-1")
    $w = IniRead($ini, "Settings", "w", "555")
    $h = IniRead($ini, "Settings", "h", "281")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=o:\autoscripts\window management\form1.kxf

    [/autoit] [autoit][/autoit] [autoit]

    $Form1_1 = GUICreate($ToolTitle, $w, $h, $x, $y, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU ,$DS_SETFOREGROUND, $WS_SIZEBOX), $WS_EX_TOPMOST)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    $Tab = GUICtrlCreateTab(0, 0, $w, $h)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $TabSheet1 = GUICtrlCreateTabItem("Windows")
    $ListView1 = GUICtrlCreateListView("", 3, 23, $w - 5, $h - 28, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT));BitOR($LVS_REPORT, $LVS_SINGLESEL, $LVS_SHOWSELALWAYS), BitOR($LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES,$LVS_EX_HEADERDRAGDROP,$LVS_EX_FULLROWSELECT))
    $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $LVS_EX_HEADERDRAGDROP)
    _GUICtrlListView_SetExtendedListViewStyle($ListView1, $exStyles)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKAUTO)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $Form1_1)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Local $WinPos = WinGetPos($Form1_1)
    Local $WinSIZE = WinGetClientSize($Form1_1)
    IniWrite($ini, "Settings", "x", $WinPos[0])
    IniWrite($ini, "Settings", "y", $WinPos[1])
    IniWrite($ini, "Settings", "w", $WinSIZE[0])
    IniWrite($ini, "Settings", "h", $WinSIZE[1])
    Exit
    EndFunc

    [/autoit]