Mit _GUICtrlComboBoxEx_Create() erzeugte Box widersetzt sich Resizing

    • Offizieller Beitrag

    Hi,
    da die neue Version 3.2.10.0 uns so viele neue Funktionen beschert hat, möchte ich diese auch mal nutzen. Doch leider zeigt sich bei der ComboBox ähnliches wie bei ListView: Die neuen Funktionen bezahlt man damit, dass Altbewährtes und Gutes nicht mehr möglich ist.
    Ich weiß nicht wie ihr das seht, aber ich bin nicht sehr glücklich über diese Art neuer Implementierungen.

    Konkret:
    Ich habe eine mit _GUICtrlComboBoxEx_Create() erzeugte ListBox. Die GUI ist jedoch vom User größenveränderbar, was mit den Standardcontrols kein Problem darstellt. Einige benötigen nicht einmal "GUICtrlSetResizing(-1, $GUI_DOCKAUTO)" um sich analog anzupassen.
    Mit dem neuen Control finde ich jedoch keinen Weg.
    Vielleicht hat sich schon jemand damit rumgeärgert und kann einen Tipp geben.

    Hier mal beide Varianten im direkten Vergleich:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <GuiComboBoxEx.au3>
    Opt('GUIOnEventMode',1)

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

    $gui = GUICreate("Combo erzeugt mit 'GUICtrlCreateCombo()'", 500, 200, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    $combo = GUICtrlCreateCombo('',110,10,100)
    $list = GUICtrlCreateList('',10,40,200,120)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $in = GUICtrlCreateInput('', 250, 40, 230, 120, $ES_MULTILINE)
    GUICtrlSetData(-1, 'Beim Verändern der Größe bewegt sich die ComboBox ' & _
    'in relativer Position zu den anderen Controls.' & _
    'Sogar ohne "GUICtrlSetResizing(-1, $GUI_DOCKAUTO)".')
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $button = GUICtrlCreateButton('Ändere Combo-Erstellung', 250, 10, 150, 21)
    GUICtrlSetOnEvent(-1, '_ButtonClick')
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _ButtonClick()
    GUIDelete($gui)
    $gui = GUICreate("Combo erzeugt mit '_GUICtrlComboBoxEx_Create()'", 500, 200, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    $combo = _GUICtrlComboBoxEx_Create($gui,'',110,10)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $list = GUICtrlCreateList('', 10,40,200,120)
    $in = GUICtrlCreateInput('', 250, 40, 230, 120, $ES_MULTILINE)
    GUICtrlSetData(-1, 'Beim Verändern der Größe bleibt die ComboBox ' & _
    'in absoluterer Position zum Fenster.' & _
    '"GUICtrlSetResizing(-1, $GUI_DOCKAUTO)" ist wirkungslos.')
    $button = GUICtrlCreateButton('Combo-Erstellung geändert', 250, 10, 150, 21)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState()
    EndFunc

    [/autoit]