# Function Reference

# _GUICtrlTreeView_SetInsertMark

Sets the insertion mark

#include <GuiTreeView.au3>
_GUICtrlTreeView_SetInsertMark ( $hWnd, $hItem [, $bAfter = True] )

## Parameters

$hWnd | Control ID/Handle to the control
$hItem | Specifies at which item the insertion mark will be placed. If this is 0, the insertion mark is removed.
$bAfter | [optional] Specifies if the insertion mark is placed before or after the item. If this is True, the insertion mark will be placed after the item. If this is False, the insertion mark will be placed before the item.

## Return Value

Success: | True.
Failure: | False.

## Example

    #include <GUIConstantsEx.au3>
    #include <GuiImageList.au3>
    #include <GuiTreeView.au3>
    #include <MsgBoxConstants.au3>
    #include <WindowsStylesConstants.au3>

    Global $g_hImage, $g_hStateImage

    Example()

    Func Example()
        GUICreate("TreeView Set Insert Mark (v" & @AutoItVersion & ")", 400, 300)

        Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)
        Local $idTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
        GUISetState(@SW_SHOW)

        _CreateNormalImageList()
        _GUICtrlTreeView_SetNormalImageList($idTreeView, $g_hImage)

        _CreateStateImageList()
        _GUICtrlTreeView_SetStateImageList($idTreeView, $g_hStateImage)

        _GUICtrlTreeView_BeginUpdate($idTreeView)
        Local $ahItem[10], $aidChildItem[30], $iYItem = 0
        For $x = 0 To 9
            $ahItem[$x] = _GUICtrlTreeView_Add($idTreeView, 0, StringFormat("[%02d] New Item", $x), 4, 5)
            _GUICtrlTreeView_SetStateImageIndex($idTreeView, $ahItem[$x], 1)
            For $y = 1 To 3
                $aidChildItem[$iYItem] = _GUICtrlTreeView_AddChild($idTreeView, $ahItem[$x], StringFormat("[%02d] New Child", $y), 0, 3)
                _GUICtrlTreeView_SetStateImageIndex($idTreeView, $aidChildItem[$iYItem], 1)
                $iYItem += 1
            Next
        Next
        _GUICtrlTreeView_EndUpdate($idTreeView)

        Local $iRand = 3
        MsgBox($MB_SYSTEMMODAL, "Information", StringFormat("Set Insert Mark at Item Index[%d]: %s", $iRand, _GUICtrlTreeView_SetInsertMark($idTreeView, $ahItem[$iRand])))

        ; Loop until the user exits.
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
    EndFunc   ;==>Example

    Func _CreateNormalImageList()
        $g_hImage = _GUIImageList_Create(16, 16, 5, 3)
        _GUIImageList_AddIcon($g_hImage, "shell32.dll", 110)
        _GUIImageList_AddIcon($g_hImage, "shell32.dll", 131)
        _GUIImageList_AddIcon($g_hImage, "shell32.dll", 165)
        _GUIImageList_AddIcon($g_hImage, "shell32.dll", 168)
        _GUIImageList_AddIcon($g_hImage, "shell32.dll", 137)
        _GUIImageList_AddIcon($g_hImage, "shell32.dll", 146)
    EndFunc   ;==>_CreateNormalImageList

    Func _CreateStateImageList()
        $g_hStateImage = _GUIImageList_Create(16, 16, 5, 3)
        _GUIImageList_AddIcon($g_hStateImage, "shell32.dll", 3)
        _GUIImageList_AddIcon($g_hStateImage, "shell32.dll", 4)
    EndFunc   ;==>_CreateStateImageList