# Function Reference

# _GUICtrlTab_GetItem

Retrieves information about a tab

#include <GuiTab.au3>
_GUICtrlTab_GetItem ( $hWnd, $iIndex )

## Parameters

$hWnd | Control ID/Handle to the control
$iIndex | 0-based item index

## Return Value

Returns an array with the following format:
[0] - Item state flags:
$TCIS_BUTTONPRESSED - The tab control item is selected
$TCIS_HIGHLIGHTED - The tab control item is highlighted
[1] - Item text
[2] - 0-based item image index or -1 if item has no image
[3] - Application-defined data

## Related

_GUICtrlTab_SetItem

## Example

### Example 1

    #include "Extras\HelpFileInternals.au3"

    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiTab.au3>

    Example()

    Func Example()
        ; Create GUI
        Local $hGUI = GUICreate("Tab Get/Set Item (v" & @AutoItVersion & ")", 450, 300, 100, 100)
        Local $idTab = GUICtrlCreateTab(2, 2, 446, 266)
        _MemoCreate(4, 28, 442, 236)

        GUISetState(@SW_SHOW)

        ; Create images
        Local $hImage = _GUIImageList_Create(16, 16, 5, 3)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 110)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 131)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 165)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 168)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 137)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 146)
        _GUICtrlTab_SetImageList($idTab, $hImage)

        ; Add tabs
        Local $idTBi_Tab0 = GUICtrlCreateTabItem("Tab 0")
        GUICtrlCreateTabItem("")
        GUICtrlCreateTabItem("Tab 1")
        GUICtrlCreateTabItem("")
        GUICtrlCreateTabItem("Tab 2")
        GUICtrlCreateTabItem("")
        GUICtrlSetState($idTBi_Tab0, $GUI_SHOW)

        ; Get/Set tab 0
        _GUICtrlTab_SetItem($idTab, 0, "New Text", BitOR($TCIS_BUTTONPRESSED, $TCIS_BUTTONPRESSED), 2)
        _GUICtrlTab_SetItem($idTab, 1, -1, -1, 4)
        _GUICtrlTab_SetItem($idTab, 2, -1, -1, 5)

        GUISetState(@SW_LOCK)
        Local $aItem
        For $x = 0 To 2
            _MemoWrite(@CRLF & "=====================")
            _MemoWrite("Tab Item " & $x)
            _MemoWrite("=====================")
            $aItem = _GUICtrlTab_GetItem($idTab, $x)
            For $y = 0 To 3
                _MemoWrite("$aItem[" & $y & "]: " & $aItem[$y])
            Next
        Next
        GUISetState(@SW_UNLOCK)

        _MemoMsgBoxStatus("", -1, $hGUI) ; no more action, wait GUI for closing

    EndFunc   ;==>Example

### Example (OutProcess) : Tab Get/Set Item to an External process

    #include "Extras\HelpFileInternals.au3"

    #include <GuiTab.au3>
    #include <MsgBoxConstants.au3>

    Example()

    Func Example()
        Local $sFromTo
        Local $hWin = _MemoRunAU3OutProcess($sFromTo, True) ; OK also if run in different mode
        Local $hTabCtrl = _MemoCreateOutProcess($hWin, "SysTabControl32", 0, $sFromTo)

        Local $iTab = 2
        _MemoMsgBox($MB_SYSTEMMODAL, "Info" & $sFromTo, "Set Item #" & $iTab)
        _GUICtrlTab_SetItem($hTabCtrl, $iTab, "UPD Text") ; update the external Process Tab
        Local $aItem = _GUICtrlTab_GetItem($hTabCtrl, $iTab)
        _MemoWrite(@CRLF & "=====================")
        _MemoWrite("Tab Item " & $iTab)
        _MemoWrite("=====================")
        If IsArray($aItem) Then
            For $y = 0 To 3
                _MemoWrite("$aItem[" & $y & "]: " & $aItem[$y])
            Next
        Else
            _MemoWrite("$aItem: " & $aItem)
        Endif

        ; to force refreshing of the Edit OutProcess
        WinSetState($hWin, "", @SW_MINIMIZE)
        WinSetState($hWin, "", @SW_RESTORE)

        _MemoMsgBoxStatus("", -1, $hWin) ; no more action, wait GUI for closing

    EndFunc   ;==>Example