Something like this?
#Include <Array.au3>
#Include <FontConstants.au3>
#Include <WinAPI.au3>
#Include <WindowsConstants.au3>
GUICreate('MyGUI', 300, 200)
$Label = GUICtrlCreateLabel('Simple Text', 20, 40, 100, 22)
GUICtrlSetFont(-1, 12, 700, 2 + 4, 'Tahoma')
GUISetState(@SW_SHOW)
$aFont = GUICtrlGetFont($Label)
_ArrayDisplay($aFont)
Do
Until GUIGetMsg() = -3
#cs
[0] - Size
[1] - Weight
[2] - Attribute
[3] - Name
[4] - Quality
#ce
Func GUICtrlGetFont($CtrlID)
Local $hWnd = GUICtrlGetHandle($CtrlID)
If Not $hWnd Then
Return 0
EndIf
Local $Ret, $hDC, $hFont, $tFont
Local $aFont = 0
$hDC = _WinAPI_GetDC($hWnd)
$hFont = _SendMessage($hWnd, $WM_GETFONT)
$tFont = DllStructCreate($tagLOGFONT)
$Ret = DllCall('gdi32.dll', 'int', 'GetObjectW', 'ptr', $hFont, 'int', DllStructGetSize($tFont), 'ptr', DllStructGetPtr($tFont))
If (Not @error) And ($Ret[0]) Then
Dim $aFont[5] = [0]
$aFont[0] = -Round(DllStructGetData($tFont, 'Height') / _WinAPI_GetDeviceCaps($hDC, $LOGPIXELSY) * 72, 1)
$aFont[1] = DllStructGetData($tFont, 'Weight')
$aFont[2] = BitOR(2 * (DllStructGetData($tFont, 'Italic') <> 0), 4 * (DllStructGetData($tFont, 'Underline') <> 0), 8 * (DllStructGetData($tFont, 'Strikeout') <> 0))
$aFont[3] = DllStructGetData($tFont, 'FaceName')
$aFont[4] = DllStructGetData($tFont, 'Quality')
EndIf
_WinAPI_ReleaseDC($hWnd, $hDC)
Return $aFont
EndFunc ;==>GUICtrlGetFont