Function Reference


_GUICtrlTreeView_HitTest

Returns information about the location of a point relative to the control

#include <GuiTreeView.au3>
_GUICtrlTreeView_HitTest ( $hWnd, $iX, $iY )

Parameters

$hWnd Control ID/Handle to the control
$iX X position, relative to the control, to test
$iY Y position, relative to the control, to test

Return Value

Success: Value indicating the results of the hit test:
    1 - In the client area, but below the last item.
    2 - On the bitmap associated with an item
    4 - On the text associated with an item
    8 - In the indentation associated with an item
    16 - On the button associated with an item
    32 - In the area to the right of an item
    64 - On the state icon for a item that is in a user-defined state
    128 - Above the client area
    256 - Below the client area
    512 - To the right of the client area
    1024 - To the left of the client area
Failure: 0.

Related

_GUICtrlTreeView_HitTestEx, _GUICtrlTreeView_HitTestItem

Example

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

Global $g_hImage, $g_hStateImage

Example()

Func Example()
    Local $ahItem[10], $aidChildItem[30], $iYItem = 0, $iYRand, $iXRand, $idTreeView
    Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)

    GUICreate("TreeView Hit Test", 400, 300)

    $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)
    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)

    _GUICtrlTreeView_SelectItem($idTreeView, $ahItem[0])
    _GUICtrlTreeView_SetStateImageIndex($idTreeView, $ahItem[0], 2)

    $iYRand = Random(0, 268, 1)
    $iXRand = Random(0, 396, 1)
    MsgBox($MB_SYSTEMMODAL, "Information", StringFormat("Hit Test (%d, %d): %s", $iXRand, $iYRand, _GetHitString(_GUICtrlTreeView_HitTest($idTreeView, $iXRand, $iYRand))))

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

Func _GetHitString($iResult)
    Switch $iResult
        Case 1
            Return "In the client area, but below the last item"
        Case 2
            Return "On the bitmap associated with an item"
        Case 4
            Return "On the text associated with an item"
        Case 8
            Return "In the indentation associated with an item"
        Case 16
            Return "On the button associated with an item"
        Case 32
            Return "In the area to the right of an item"
        Case 64
            Return "On the state icon for a item that is in a user-defined state"
        Case 128
            Return "Above the client area"
        Case 256
            Return "Below the client area"
        Case 512
            Return "To the left of the client area"
        Case 1024
            Return "To the right of the client area"
    EndSwitch
EndFunc   ;==>_GetHitString

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