Code: Select all
Gui, New, , MyWindow
Gui, Add, Text, , Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras rutrum nisi et metus porttitor non tristique est euismod. Maecenas accumsan, ante at tempus tempor, lorem elit mollis mauris, vitae tempor massa odio eget libero.
Gui, Font
Gui, Add, Button, y+20 vMyButton1 gGuiClose, Close
Gui, Add, Button, yp vMyButton2 gGuiClose, Lonnger Button Name
GuiCenterButtons("MyWindow", 10, 5, 30, "MyButton1", "MyButton2")
Gui, Show, Autosize Center
return
GuiClose:
ExitApp
;------------------------------------------------------------
GuiCenterButtons(strWindow, intInsideHorizontalMargin := 10, intInsideVerticalMargin := 0, intDistanceBetweenButtons := 20, arrControls*)
; This is a variadic function. See: http://ahkscript.org/docs/Functions.htm#Variadic
;------------------------------------------------------------
{
DetectHiddenWindows, On
Gui, Show, Hide
WinGetPos, , , intWidth, , %strWindow%
intMaxControlWidth := 0
intMaxControlHeight := 0
for intIndex, strControl in arrControls
{
GuiControlGet, arrControlPos, Pos, %strControl%
if (arrControlPosW > intMaxControlWidth)
intMaxControlWidth := arrControlPosW
if (arrControlPosH > intMaxControlHeight)
intMaxControlHeight := arrControlPosH
}
intMaxControlWidth := intMaxControlWidth + intInsideHorizontalMargin
intButtonsWidth := (arrControls.MaxIndex() * intMaxControlWidth) + ((arrControls.MaxIndex() - 1) * intDistanceBetweenButtons)
intLeftMargin := (intWidth - intButtonsWidth) // 2
for intIndex, strControl in arrControls
GuiControl, Move, %strControl%
, % "x" . intLeftMargin + ((intIndex - 1) * intMaxControlWidth) + ((intIndex - 1) * intDistanceBetweenButtons)
. " w" . intMaxControlWidth
. " h" . intMaxControlHeight + intInsideVerticalMargin
}
;------------------------------------------------------------