WinMove / GUI - Größe ändern ?

  • moin Leute,
    wenn ich per WinMove die Größes meiner GUI verändere, dann dehnen oder quetschen dadurch alle Controll-Elemente.
    Wie kann ich das verhindern ? - Ich möchte nur in der Horizontalen nach rechts weg ein bisschen mehr Fenster dazu haben bzw schrumpfen. gibt es andere Möglichkeiten ?

    [autoit]

    $Form1_1 = GUICreate("Test", 1260, 780, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$DS_MODALFRAME), 0)
    WinMove($Form1_1, "", Default, Default, 780+($horizintal_width*10),810, 100)

    [/autoit]

    Einmal editiert, zuletzt von WhiteLion (1. Januar 2014 um 21:40)

  • habe ich, trotzdem bekomme es nicht hin :(
    ich möchte das ändern der größe von allen controlls einfach abstellen, wenn sich das fenster in der größe ändert.... gibt aber auch kein ordentliches beispiel dafür.
    die option ist ja mal echt schlecht beschrieben.

    Einmal editiert, zuletzt von WhiteLion (1. Januar 2014 um 19:42)

  • Wie wäre es wenn du einen Beispielcode schreibst der das Problem veranschaulicht? Die zwei Zeilen da oben sind jedenfalls unbrauchbar um das ganze zu testen und ich bin zu Faul mir die restliche GUI selbst zu schreiben...

  • Also hier ein beispiel.... die knöpfe und alles sonst sollte beim vergrößern an gleicher position bleiben.

    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <FontConstants.au3>

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

    $Form1_1 = GUICreate("Test", 400, 780, -1, -1, BitOR($GUI_SS_DEFAULT_GUI,$DS_MODALFRAME), 0)
    $res = GUICtrlCreateGroup("res", 16, 336, 314, 105)
    $chk_2 = GUICtrlCreateCheckbox("Type 2", 123, 351, 57, 15)
    $chk_3 = GUICtrlCreateCheckbox("Type 3", 196, 351, 57, 15)
    $chk_4 = GUICtrlCreateCheckbox("Type 4", 271, 351, 57, 15)
    $chk_5 = GUICtrlCreateCheckbox("Type 5", 123, 373, 57, 15)
    $chk_6 = GUICtrlCreateCheckbox("Type 6", 196, 373, 57, 15)
    $chk_7 = GUICtrlCreateCheckbox("Type 7", 271, 373, 57, 15)
    $chk_8 = GUICtrlCreateCheckbox("Type 8", 123, 394, 65, 15)
    $chk_9 = GUICtrlCreateCheckbox("Type 9", 123, 415, 105, 15)
    $chk_10 = GUICtrlCreateCheckbox("Type 10", 196, 394, 65, 15)
    $chk_11 = GUICtrlCreateCheckbox("Type 11", 271, 394, 57, 15)

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

    GUISetState(@SW_SHOW)
    Sleep(2000)
    WinMove($Form1_1, "", Default, Default, 1200,810, 100)
    Sleep(2000)

    [/autoit]
  • [autoit]

    Opt("GUIResizeMode",802)

    [/autoit]

    Und das Problem war nun? Wurde btw. bereits von Tweaky im 2. Post gelöst, du hättest die beiden Dinge nur in der Hilfe nachschlagen müssen...

  • danke....

    das problem: wie kommt man auf....:

    Opt("GUIResizeMode",802)

    ....bei der beschreibung von GUIResizeMode???!!!:
    Ändert das Standardverhalten bei Größenveränderung für ein Control.
    0 = (Standard) behält das Standardverhalten bei.
    <1024 = jede Art der Größenveränderung, siehe GUICtrlSetResizing.

    bei GUIResizeMode ... steht dazu auch nix

    was bedeutet die 802 ?

  • Du schaust dir den Befehl GUICtrlSetResizing an, welcher bei der globalen Option in der Beschreibung erwähnt wird. Dort sind alle Werte und ihre Bedeutung aufgelistet, unter anderem auch die Kombination die 802 bzw. dockall ergibt:

    [autoit]

    GUICtrlSetResizing

    [/autoit]

    Die Option ist der globale Standard der GUI fürs resizing, mit der Funktion GUICtrlSetResizing wird dies für das gewünschte Control vom globalen Standard abweichend festgelegt. Du könntest statt der globalen Optiona also auch nur bestimmte controls festsetzen und das Verschieben oder Vergrößern für andere controls zulassen.