Hi Jibberish,
First I took your Start Button and wrapped an If Else Endif statement into it, to read the results of the Radio button.
I've also cleaned your script up. Took away your function. No need to wrap it in a func.
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hGUI = GUICreate("SGX4CP Tests", 300, 300, 192, 124)
$bSelect1 = GUICtrlCreateRadio("Select 1", 10, 160)
$bSelect2 = GUICtrlCreateRadio("Select 2", 10, 190)
$bSelect3 = GUICtrlCreateRadio("Select 3", 10, 220)
$idClose = GUICtrlCreateButton("Start", 120, 250)
GUISetState(@SW_SHOW)
; Set TestSelectForever as the default radio button
GUICtrlSetState($bSelect1, $GUI_CHECKED)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $bSelect1
MsgBox(0, "", "Select1")
Case $bSelect2
MsgBox(0, "", "Select2")
Case $bSelect3
MsgBox(0, "", "Select3")
Case $idClose
$bSelect1 = GUICtrlRead($bSelect1)
$bSelect2 = GUICtrlRead($bSelect2)
$bSelect3 = GUICtrlRead($bSelect3)
If $bSelect1 = 1 Then
$Radio1 = String("checked")
Else
$Radio1 = String("not checked")
EndIf
If $bSelect2 = 1 Then
$Radio2 = String("checked")
Else
$Radio2 = String("not checked")
EndIf
If $bSelect3 = 1 Then
$Radio3 = String("checked")
Else
$Radio3 = String("not checked")
EndIf
MsgBox(0, "Results", "Select1 is " & $Radio1 & ". Select2 is " & $Radio2 & ". Select3 is " & $Radio3 & ".")
ExitLoop
EndSwitch
WEnd