Frage(n) zu Resize eine Gui und dem Inhalt

  • [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 414, 281, 192, 145, $WS_SIZEBOX + $WS_SYSMENU)
    $List1 = GUICtrlCreateList("1", 16, 80, 177, 123)
    $Combo1 = GUICtrlCreateCombo("Combo1", 24, 224, 81, 25)
    $Button1 = GUICtrlCreateButton("Button1", 136, 224, 49, 25, $WS_GROUP+$GUI_DOCKBOTTOM)
    GUICtrlCreateGroup("",5,70,200,185, $WS_GROUP)

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

    $List2 = GUICtrlCreateList("2", 214, 77, 177, 123)
    $Combo2 = GUICtrlCreateCombo("Combo2", 222, 220, 81, 25)
    $Button2 = GUICtrlCreateButton("Button2", 336, 216, 49, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    was muss man tun damit, Buttons und die Combobox im Bezug zum darüberliegenden Listview an der gleichen Position bleiben.
    Die Buttons sollen Ihre Größe beibehalten, die Listbox soll in vom Startpunkt oben links nicht abweichen nur nach rechts/unten vergrößerbar sein. Die rechte Listbox den Abstand zur linken Listbox beibehalten und sich auch nur nach rechts/unten vergrößern können.

    Viel Text aber ich hoffe es ist verständlich, ich möchte halt nicht das auch die Abstände zwischen den Controls grßer werden.
    Wie kann ich verhindern das nicht eine Minimalgröße von 1024/768 unterschritten wird?

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    Einmal editiert, zuletzt von Dietmar (5. September 2010 um 17:52)

    • Offizieller Beitrag

    Probier mal das aus:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 414, 281, 192, 145, $WS_SIZEBOX + $WS_SYSMENU)
    GUICtrlCreateGroup("", 5, 70, 200, 185)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $List1 = GUICtrlCreateList("", 16, 80, 177, 123)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $Combo1 = GUICtrlCreateCombo("Combo1", 24, 224, 81, 25)
    GUICtrlSetResizing($Combo1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    $Button1 = GUICtrlCreateButton("Button1", 136, 224, 49, 25)
    GUICtrlSetResizing($Button1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("", 205, 70, 200, 185)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT)
    $List2 = GUICtrlCreateList("", 214, 80, 177, 123)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKRIGHT)
    $Combo2 = GUICtrlCreateCombo("Combo1", 222, 224, 81, 25)
    GUICtrlSetResizing($Combo2, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    $Button2 = GUICtrlCreateButton("Button1", 336, 224, 49, 25)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlSetResizing($Button2, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]
  • Besten Dank erstmal
    in der vertikalen sieht es gut aus, nur in der horizontalen verschieben sich die Controlls unten noch.
    Die Combobox darf ruhig größer werden. Mein Problem ist das ich gerne den Bezugspunkt zum Listview darüber hätte und nicht zum Fenster total,
    die Combobox rechts kommt doch sehr weit nach rechts rüber, beim Vergrößern.

    Gruß Dietmar

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=test_resize.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 1024, 768, 192, 145, $WS_SIZEBOX + $WS_SYSMENU + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX)

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

    GUICtrlCreateGroup("", 10, 70, 500, 665)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $List1 = GUICtrlCreateList("", 16, 80, 490, 573)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $Combo1 = GUICtrlCreateCombo("Combo1", 24, 660, 81, 25)
    GUICtrlSetResizing($Combo1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $Button1 = GUICtrlCreateButton("Button1", 136, 660, 49, 25)
    GUICtrlSetResizing($Button1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUICtrlCreateGroup("", 514, 70, 500, 665)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER);$GUI_DOCKRIGHT)
    $List2 = GUICtrlCreateList("", 519, 80, 490, 573)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER);$GUI_DOCKRIGHT)
    $Combo2 = GUICtrlCreateCombo("Combo1", 542, 660, 81, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER)
    $Button2 = GUICtrlCreateButton("Button1", 666, 660, 49, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

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

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

    EndSwitch
    WEnd

    [/autoit]

    So ist es schon mal ganz brauchbar, bleibt nur die Frage ob man ein resize < 1024x768 unterbindenkann.

    Wenn man mit ner relitischen Fenstergröße startet verschiebt es sich auf 1920x1200 auch nicht mehr so extrem

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    3 Mal editiert, zuletzt von Dietmar (5. September 2010 um 14:29)

    • Offizieller Beitrag

    Um ein resizen unter eine bestimmte Größe zu verhindern gibt es $WM_GETMINMAXINFO:

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_outfile=test_resize.exe
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 1024, 768, 192, 145, $WS_SIZEBOX + $WS_SYSMENU + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX)

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

    GUICtrlCreateGroup("", 10, 70, 500, 665)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $List1 = GUICtrlCreateList("", 16, 80, 490, 573)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $Combo1 = GUICtrlCreateCombo("Combo1", 24, 660, 81, 25)
    GUICtrlSetResizing($Combo1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    $Button1 = GUICtrlCreateButton("Button1", 136, 660, 49, 25)
    GUICtrlSetResizing($Button1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKLEFT)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUICtrlCreateGroup("", 514, 70, 500, 665)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER);$GUI_DOCKRIGHT)
    $List2 = GUICtrlCreateList("", 519, 80, 490, 573)
    GUICtrlSetResizing(-1, $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER);$GUI_DOCKRIGHT)
    $Combo2 = GUICtrlCreateCombo("Combo1", 542, 660, 81, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER)
    $Button2 = GUICtrlCreateButton("Button1", 666, 660, 49, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKBOTTOM + $GUI_DOCKHCENTER)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    GUIRegisterMsg($WM_GETMINMAXINFO, '_WM_GETMINMAXINFO')

    [/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]

    Func _WM_GETMINMAXINFO($hWnd, $msg, $wParam, $lParam)
    Local $minmaxinfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
    Switch $hWnd
    Case $Form1
    DllStructSetData($minmaxinfo, 7, 1038) ; min X
    DllStructSetData($minmaxinfo, 8, 782) ; min Y
    EndSwitch
    EndFunc ;==>_WM_GETMINMAXINFO

    [/autoit]
  • Wie geil ist das denn :D

    ja so gehts gut dann kann ich nun die komplexere gui auf resizefunktionalität umstellen.
    das war ja nur ein Dummybeispiel um die Frage zu verdeutlichen.
    Hab da halt ne Menge Prödel auf der Gui aber mit (-1, ) ist es dank C&P recht simpel ;)

    Besten dank nochmal.

    Ist as jetzt der aktuelle richtige Weg oder stehen da wieder Änderungen an?
    Habe da einen Beitrag von Bugfix gesehen wo er im "engl." Forum eine recht schroffe Antwort erhielt und recht angepis... war :) war so um 2007 rum.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    Einmal editiert, zuletzt von Dietmar (5. September 2010 um 17:53)