Gui Resize

  • Hallo,

    ich probiere schon seit 2 Tagen
    dieses Problem zu lösen:

    Ich möchte mit der + Taste (NumPAD)
    die Gui mit Inhalt vergrößern.

    Also, wenn die Gui zu klein wird, dann soll sich sich
    erweitern.

    Mein Code:

    Spoiler anzeigen
    [autoit]


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

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

    Global $Start = 10
    HotKeySet("{NUMPADADD}", "plus")

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

    $Form1 = GUICreate("Form1", 228, 237, 192, 124)
    $List1 = GUICtrlCreateList("", 32, 24, 153, 188)
    GUICtrlSetData(-1, "Hilfe|Info")
    GUISetState(@SW_SHOW)

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

    func plus()

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

    $Start += 10

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

    GUICtrlSetFont($List1,$Start)

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

    endfunc

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

    Hoffe Ihr habt da eine Lösung

    ;) Ilse

    Einmal editiert, zuletzt von Ilse (28. März 2012 um 11:48)

  • moin

    also das hier solte eigentlich klappen

    Spoiler anzeigen
    [autoit]

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

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

    Global $guix = 228 ; breite der gui
    Global $guiy = 237 ;höhe der gui
    Global $listx = 153 ; x pos von list
    Global $listy = 188 ; y pos von list
    HotKeySet("{NUMPADADD}", "plus")

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

    $Form1 = GUICreate("Form1", $guix, $guiy, 192, 124) ;du kannst die letzten beiden parameter weglassen dan geht das fenster in der mitte des bildschirmes auf
    $List1 = GUICtrlCreateList("", 32, 24, $listx, $listy)
    GUICtrlSetData(-1, "Hilfe|Info")
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    Sleep(50)
    WEnd

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

    func plus()

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

    $guix += 10 ; größe bei allen + 10
    $guiy += 10
    $listx += 10
    $listy += 10
    $pos = WinGetPos("Form1") ; abfrage wo die gui sich auf dem bildschirm befindet

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

    WinMove("Form1", "", $pos[0], $pos[1], $guix, $guiy) ; setzt die gui an die gleiche position wie vorher jedoch mit einer anderen größe
    GUICtrlSetPos( $Form1, 32, 24, $listx, $listy) ; vergrößert die list

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

    endfunc

    [/autoit]

    hab es nicht getestet
    du soltest noch eine minus funktion und ein maximum einfügen

    GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )

    guck dir auch mal den parameter style bei der funktion guicreate an ( in der hilfe datei)
    da müste es auch etwas geben um die gui per maus zu vergrößern ( wie bei manchen fenstern kann man sie unten rechts in die richtige größe ziehen)
    EDIT: $WS_OVERLAPPEDWINDOW das war es glaub ich

    mfg bulli

  • Hallo Bulli IT

    merci für die Hilfe!
    Genau so dachte ich.
    Aber wie kann man noch die Größe
    der Schrift mitverändern?

    Hab was eingebaut, aber das geht nicht!

    Spoiler anzeigen
    [autoit]


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

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

    Global $guix = 228 ; breite der gui
    Global $guiy = 237 ;höhe der gui
    Global $listx = 153 ; x pos von list
    Global $listy = 188 ; y pos von list
    HotKeySet("{NUMPADADD}", "plus")

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

    $Form1 = GUICreate("Form1", $guix, $guiy, 192, 124,$WS_SIZEBOX ) ;du kannst die letzten beiden parameter weglassen dan geht das fenster in der mitte des bildschirmes auf
    $List1 = GUICtrlCreateList("", 32, 24, $listx, $listy)
    GUICtrlSetData(-1, "Hilfe|Info")
    GUISetState(@SW_SHOW)
    $Start = 10

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

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

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

    EndSwitch
    Sleep(50)
    WEnd

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

    func plus()
    $Start += 10

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

    GUICtrlSetFont($list1,$Start)
    $guix += 10 ; größe bei allen + 10
    $guiy += 10
    $listx += 10
    $listy += 10
    $pos = WinGetPos("Form1") ; abfrage wo die gui sich auf dem bildschirm befindet

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

    WinMove("Form1", "", $pos[0], $pos[1], $guix, $guiy) ; setzt die gui an die gleiche position wie vorher jedoch mit einer anderen größe
    GUICtrlSetPos( $Form1, 32, 24, $listx, $listy) ; vergrößert die list

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

    endfunc

    [/autoit]

    Das mit der Maus hab ich eingebaut.
    Aber die Vergrößerung mit der Taste stimmt leider noch nicht so ganz.
    Die Schriftgröße stimmt irgendwie nicht.

    ;)Grüße Ilse

    Einmal editiert, zuletzt von Ilse (27. März 2012 um 19:13)

  • guictrlsetfont() muss aus irgendwelchen gründen vor winmove und guictrlsetpos weil sonst list1 total verbugt ist ?(

    naja so funktioniert es bei mir

    Spoiler anzeigen
    [autoit]

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

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

    Global $guix = 228 ; breite der gui
    Global $guiy = 237 ;höhe der gui
    Global $listx = 153 ; x pos von list
    Global $listy = 188 ; y pos von list
    Global $Start = 8
    HotKeySet("{NUMPADADD}", "plus")

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

    $Form1 = GUICreate("Form1", $guix, $guiy) ;du kannst die letzten beiden parameter weglassen dan geht das fenster in der mitte des bildschirmes auf
    $List1 = GUICtrlCreateList("", 32, 24, $listx, $listy)
    GUICtrlSetData(-1, "Hilfe|Info")
    GUISetState(@SW_SHOW)

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

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

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

    EndSwitch
    Sleep(50)
    WEnd

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

    func plus()

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

    $guix += 10 ; größe bei allen + 10
    $guiy += 10
    $listx += 10
    $listy += 10
    $Start += 1

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

    GUICtrlSetFont($List1,$Start)
    GUICtrlSetPos( $Form1, 32, 24, $listx, $listy) ; vergrößert die list
    WinMove("Form1", "", default, default, $guix, $guiy) ; setzt die gui an die gleiche position wie vorher jedoch mit einer anderen größe

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

    endfunc

    [/autoit]


    beim ersten vergrößern wird die höhe der gui irgendwie kleiner ?( weis nicht warum
    ich hab die font immer +1 gemacht damit das verhältnis ungefähr gleich bleibt aber das könnte man noch ausrechnen und aufrunden

    EDIT: bei winmove kann die x und y pos mit default also mit den aktuellen kooardinaten angegeben werden dadurch ist wingetpos überflüßig

    2 Mal editiert, zuletzt von Bulli-IT (27. März 2012 um 20:07)