Returns information about the location of a point relative to the control
#include <GuiTreeView.au3>
_GUICtrlTreeView_HitTest ( $hWnd, $iX, $iY )
$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 |
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. |
_GUICtrlTreeView_HitTestEx, _GUICtrlTreeView_HitTestItem
#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiTreeView.au3>
#include <MsgBoxConstants.au3>
#include <WindowsConstants.au3>
Global $g_hImage, $g_hStateImage
Example()
Func Example()
GUICreate("TreeView Hit Test (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, $iYRand, $iXRand
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