MariusN,
You might want to create your GUI for the lowest resolution you are likely to face and allow it to be resized but keeping the same aspect ratio - like this:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
; Set resize mode for controls
Opt("GUIResizeMode", $GUI_DOCKAUTO)
$hGUI = GUICreate("Test", 500, 300, -1, -1, BitOR($WS_SIZEBOX, $WS_SYSMENU))
$cButton_1 = GUICtrlCreateButton("Test 1", 10, 10, 80, 30)
$cButton_2 = GUICtrlCreateButton("Test 2", 10, 50, 80, 30)
GUISetState()
GUIRegisterMsg($WM_SIZING, "_WM_SIZING")
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _WM_SIZING($hWnd, $iMsg, $wParam, $lParam)
#forceref $iMsg, $wParam, $wParam
If $hWnd = $hGUI Then
Local $iNew_H, $iNew_W
Local $sRect = DllStructCreate("Int[4]", $lParam)
Local $iLeft = DllStructGetData($sRect, 1, 1)
Local $iTop = DllStructGetData($sRect, 1, 2)
Local $iRight = DllStructGetData($sRect, 1, 3)
Local $iBottom = DllStructGetData($sRect, 1, 4)
; Keep the same aspect ratio
Switch $wParam ; drag side or corner
Case 1, 2 ; $WMSZ_LEFT, $WMSZ_RIGHT
$iNew_H = Int(($iRight - $iLeft) * 300 / 500)
DllStructSetData($sRect, 1, DllStructGetData($sRect, 1, 2) + $iNew_H, 4)
Case Else
$iNew_W = Int(($iBottom - $iTop) * 500 / 300)
DllStructSetData($sRect, 1, DllStructGetData($sRect, 1, 1) + $iNew_W, 3)
EndSwitch
EndIf
EndFunc
You will notice the font remains the same size. You can change that by adding another handler - let me know if you want to see how.
M23