@M23 was faster.
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <array.au3>
; An array to hold the label ControlIDs
Global $aLabel1[6], $aLabel2[6]
; A variable to show the last label which changed colour
Global $iLastLabel = 0
Global $aText[6] = ["Malwarebytes Removal Tool", "Second label", "Third label", "Fourth label", "Fifth label", "Sixth label"]
Global $aSecondary[6] = ["Bump", "Grump", "", "", "", ""]
$hGUI = GUICreate("Test", 500, 600)
For $i = 0 To 5
$aLabel1[$i] = GUICtrlCreateLabel($aText[$i], 0, (50 * $i), 500, 45, BitOr($SS_CenterImage, $SS_Center))
GUICtrlSetBkColor($aLabel1[$i], $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont($aLabel1[$i], 14, 800, 0, "Arial", 4)
$aLabel2[$i] = GUICtrlCreateLabel($aSecondary[$i], (StringLen($aText[$i]) + StringLen($aSecondary[$i])) * 5.25, (50 * $i), 500, 45, BitOr($SS_CenterImage, $SS_Center))
GUICtrlSetFont($aLabel2[$i], 7, 400, 0, "Arial", 5)
GUICtrlSetBkColor($aLabel2[$i], $GUI_BKCOLOR_TRANSPARENT)
Next
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
; Get cursor info
$aCInfo = GUIGetCursorInfo($hGUI)
; loop through the label array to see which one is under the cursor
For $i = 0 To 5
; If we are over a new label
If ($aCInfo[4] = $aLabel1[$i] Or $aCInfo[4] = $aLabel2[$i]) And $iLastLabel <> $i Then
; Recolour previos label
GUICtrlSetBkColor($aLabel1[$iLastLabel], $GUI_BKCOLOR_TRANSPARENT)
; colour current label
GUICtrlSetBkColor($aLabel1[$i], 0xFF0000)
; Store this label
$iLastLabel = $i
; No point in looking further
ExitLoop
EndIf
Next
WEnd
Br,
UEZ