Function GUIStartGroup

Function Reference


GUIStartGroup

Defines that any subsequent controls that are created will be "grouped" together.

GUIStartGroup ( [winhandle] )

Parameters

winhandle [optional] Windows handle as returned by GUICreate() (default is the previously used window).

Return Value

Success: 1.
Failure: 0.

Remarks

This function is generally used when working with radio button controls. When you click a radio button all other radio buttons in the same grouping are reset. The GUIStartGroup() function allows you to easily define these groups.

Related

GUICtrlCreateGroup

Example

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    Opt("GUICoordMode", 1)

    GUICreate("Radio Box Grouping Demo", 400, 280)

    ; Create the controls
    Local $idButton_1 = GUICtrlCreateButton("B&utton 1", 30, 20, 120, 40)
    GUICtrlCreateGroup("Group 1", 30, 90, 165, 160)
    GUIStartGroup()
    Local $idRadio_1 = GUICtrlCreateRadio("Radio &0", 50, 120, 70, 20)
    Local $idRadio_2 = GUICtrlCreateRadio("Radio &1", 50, 150, 60, 20)
    Local $idRadio_3 = GUICtrlCreateRadio("Radio &2", 50, 180, 60, 20)
    GUIStartGroup()
    Local $idRadio_4 = GUICtrlCreateRadio("Radio &A", 120, 120, 70, 20)
    Local $idRadio_5 = GUICtrlCreateRadio("Radio &B", 120, 150, 60, 20)
    Local $idRadio_6 = GUICtrlCreateRadio("Radio &C", 120, 180, 60, 20)
    GUIStartGroup()
    Local $idInput_1 = GUICtrlCreateInput("Input 1", 200, 20, 160, 30)
    Local $idInput_2 = GUICtrlCreateInput("Input 2", 200, 70, 160, 30)

    ; Set the defaults (radio buttons clicked, default button, etc)
    GUICtrlSetState($idRadio_1, $GUI_CHECKED)
    GUICtrlSetState($idRadio_6, $GUI_CHECKED)
    GUICtrlSetState($idButton_1, $GUI_FOCUS + $GUI_DEFBUTTON)

    ; Init our vars that we will use to keep track of radio events
    Local $iRadioVal1 = 0 ; We will assume 0 = first radio button selected, 2 = last button
    Local $iRadioVal2 = 2

    GUISetState(@SW_SHOW)

    Local $idMsg
    ; In this message loop we use variables to keep track of changes to the radios, another
    ; way would be to use GUICtrlRead() at the end to read in the state of each control.  Both
    ; methods are equally valid
    While 1
        $idMsg = GUIGetMsg()
        Select
            Case $idMsg = $GUI_EVENT_CLOSE
                ExitLoop

            Case $idMsg = $idButton_1
                MsgBox($MB_SYSTEMMODAL, "", "Radio " & $iRadioVal1 & @CRLF & "Radio " & Chr($iRadioVal2 + Asc("A")) & @CRLF & GUICtrlRead($idInput_1) & @CRLF & GUICtrlRead($idInput_2))

            Case $idMsg = $idRadio_1 Or $idMsg = $idRadio_2 Or $idMsg = $idRadio_3
                $iRadioVal1 = $idMsg - $idRadio_1

            Case $idMsg = $idRadio_4 Or $idMsg = $idRadio_5 Or $idMsg = $idRadio_6
                $iRadioVal2 = $idMsg - $idRadio_4

        EndSelect
    WEnd

    GUIDelete()
EndFunc   ;==>Example