Wenn Du schon WM_SIZE benutzt, kannst Du auch gleich die GUI-Elemente anhand der neuen Client-Coordinaten neu ausrichten.
Das ist zwar mehr Programmieraufwand, aber man kann selbst genau bestimmen, welches Element in welcher Position bleibt bzw. verschoben wird:
AutoIt
#include <GUIConstants.au3>
Global $iGuiW = 600, $iGuiH = 400
Global $MainGUI = GUICreate("", $iGuiW, $iGuiH, -1, -1, $WS_MINIMIZEBOX + $WS_MAXIMIZEBOX + $WS_SIZEBOX)
Global $patternGroup = GUICtrlCreateGroup("", 10, 210, 580, 65)
Global $g_idPattern = GUICtrlCreateInput("", 30, 230, 540, 30)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_SIZE, "_WM_SIZE")
While GUIGetMsg() <> -3
WEnd
Func _WM_SIZE($hWnd, $Msg, $wParam, $lParam)
Local $iW = BitAND($lParam, 0x0000ffff) ; Low-Order-Word = new Client-Width
Local $iH = BitShift(BitAND($lParam, 0xffff0000), 16) ; Hi-Order-Word = new Client-Height
GUICtrlSetPos($patternGroup, Round(10 / $iGuiW * $iW), 210, Round(580 / $iGuiW * $iW), 65)
GUICtrlSetPos($g_idPattern, Round(30 / $iGuiW * $iW), 230, Round(540 / $iGuiW * $iW), 30)
Return $GUI_RUNDEFMSG
EndFunc
Alles anzeigen