GUI - Height, Width, Left, Top ?!?

  • Hey,

    ich möchte die 4 Parameter bestimmten und bei der Höhe gibt es hier Abweichungen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $ini=@ScriptDir &"\test.ini"

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

    $left=IniRead($ini, "GUI", "Left",-1)
    $top=IniRead($ini, "GUI", "Top",-1)
    $width=IniRead($ini, "GUI", "Width",400)
    $height=IniRead($ini, "GUI", "Height",200)

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

    $hGUI = GUICreate("WinGetClientSize Test", $width, $height, $left, $top)
    Global $hMenu = GUICtrlCreateMenu("Menü")
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()

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

    EndSwitch
    WEnd


    Func _Exit()
    local $aclientsize=WinGetClientSize($hGUI)
    local $agetpos=WinGetPos($hGUI)
    IniWrite($ini, "GUI","Width", $aclientsize[0])
    IniWrite($ini, "GUI","Height", $aclientsize[1])
    IniWrite($ini, "GUI","Left", $agetpos[0])
    IniWrite($ini, "GUI","Top", $agetpos[1])
    exit
    endfunc

    [/autoit]

    Einmal editiert, zuletzt von nuts (4. August 2010 um 12:36)

  • Hehe die kenn ich schon (s. Skript).
    Das Menüitem gehört aber scheinbar nicht zum Clientbereich und dadurch stimmts nicht.

    Und _GUICtrlMenu_GetMenuHeight gibt immer 0 zurück.

    Einmal editiert, zuletzt von nuts (4. August 2010 um 12:34)

  • Hallo nuts,

    ich gehe davon aus dass du eigentlich die Höhe des Menüs bestimmen willst, das kannst du so erreichen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $ini=@ScriptDir &"\test.ini"

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

    $left=IniRead($ini, "GUI", "Left",-1)
    $top=IniRead($ini, "GUI", "Top",-1)
    $width=IniRead($ini, "GUI", "Width",400)
    $height=IniRead($ini, "GUI", "Height",200)

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

    $hGUI = GUICreate("WinGetClientSize Test", $width, $height, $left, $top)
    GUISetState(@SW_SHOW)
    Global $aclientsize=WinGetClientSize($hGUI)
    Global $hMenu = GUICtrlCreateMenu("Menü")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()

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

    EndSwitch
    WEnd

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

    Func _Exit()
    Local $aclientsize2=WinGetClientSize($hGUI)
    local $agetpos=WinGetPos($hGUI)
    IniWrite($ini, "GUI","MenuHeight", $aclientsize[1]-$aclientsize2[1])
    IniWrite($ini, "GUI","Width", $aclientsize[0])
    IniWrite($ini, "GUI","Height", $aclientsize[1])
    IniWrite($ini, "GUI","Left", $agetpos[0])
    IniWrite($ini, "GUI","Top", $agetpos[1])
    exit
    endfunc

    [/autoit]

    bitte daran denken vor dem 1. Start die INI-Datei zu löschen

    mfg (Auto)Bert