There are apparently two methods of grouping radio buttons into functional sets. One is to make each button in the set a child of a group box. The other is to apply the WS_GROUP style to the first button in the set, so the set will extend up to, but not including, the next button in the tab order that has the WS_GROUP style.
;==============================================================================
include \masm32\include\masm32rt.inc
;==============================================================================
.data
state dd 0
.code
;==============================================================================
DlgProc proc hwndDlg:dword, uMsg:dword, wParam:dword, lParam:dword
SWITCH uMsg
CASE WM_COMMAND
SWITCH wParam
CASE IDCANCEL
invoke EndDialog, hwndDlg, 0
ENDSW
CASE WM_CLOSE
invoke EndDialog, hwndDlg, 0
ENDSW
xor eax, eax
ret
DlgProc endp
;==============================================================================
start:
;==============================================================================
Dialog "Test", "MS Sans Serif",10, \
WS_OVERLAPPED or WS_SYSMENU or DS_CENTER, \
4,0,0,200,150,1024
DlgRadio "AutoRadioButton1",WS_TABSTOP or WS_GROUP,65,30,70,10,100
DlgRadio "AutoRadioButton2",WS_TABSTOP,65,50,70,10,200
DlgRadio "AutoRadioButton3",WS_TABSTOP or WS_GROUP,65,80,70,10,300
DlgRadio "AutoRadioButton4",WS_TABSTOP,65,100,70,10,400
invoke GetModuleHandle, NULL
CallModalDialog eax,0,DlgProc,NULL
exit
;==============================================================================
end start