resize Problem

  • Hallo zusammen,

    ich habe ein Problem mit der Erstellung
    von Controls in Zusammenhang mit Resize.

    Hier mal der Code zum nachvollziehen:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Guisuche = GUICreate("Namen", 811, 628, 559, 111, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
    GUICtrlSetData(-1, "Edit1")
    $delete = GUICtrlCreateButton("delete", 32, 108, 75, 25)
    $Create = GUICtrlCreateButton("Create", 128, 108, 75, 25)

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

    Case $delete
    GuiCtrlDelete($Checkbox1)
    GuiCtrlDelete($Checkbox2)
    Case $Create
    $Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 52, 160, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 52, 184, 97, 17)
    EndSwitch
    WEnd

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

    1. Ich klicke auf Create (checkboxen werden erstellt)
    2. Ich resize die Gui (checkboxen werden angepasst)
    soweit ok!
    Aber dann...
    1. Ich lasse die Gui maximized
    2. Ich klicke delete (Controls werden gelöscht!

    3. Ich klicke auf Create (Checkboxen...sollten dort nicht erscheinen)


    Wie kann man das beheben?

    Liebe Grüße
    Ilse ;)

  • Hi,
    als erstes solltest du mal $Checkbox1 und $Checkbox2 Globalisieren, damit überhaubt das Skript läuft.

    Zitat

    Ich klicke auf Create (Checkboxen...sollten dort nicht erscheinen)


    Warum sollten sie dort nicht erscheinen? Du hast ihnen Feste Positionen gegeben. Die Geschichte mit dem Resizen ist auch immer so ein verzwicktes Thema, du solltest die Positionen errechnen und nicht der Willkür der WinAPI überlassen.

  • Hallo Ilse

    [autoit]

    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKTOP + $GUI_DOCKHCENTER)

    [/autoit]


    Hinter dem jeweiligen Control kann man es so im Prinzip bestimmen, mit welchen Fixpunkten das Control "relativ" verankert sein soll.
    Ist auch etwas fummelig funktioniert aber.

    Hier passt es besser.
    Der andere Post, habe ich wohl missverstanden das er gar nicht die Gui sondern nur einen Teil in der Gui resizen will. :)

    Achtung Anfänger! :whistling:

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

    • Offizieller Beitrag

    Wann man Controls auf einer resizten Gui erstellt, dann werden sie an den vorgegebenen Koordinaten erstellt.
    Das ist auch richtig, weil des Contrl nichts von der Ursprungsposition der Gui weis.
    Entweder mußt du die Contrls relativ zur Guigröße erstellen oder du erstellst sie gleich am Anfang und versteckst sie nur.
    Versteckte Controls werden bei einer Größenänderung der Gui auch resized.