函数参考


_GUICtrlTreeView_HitTest

检索测试点位置相对于控件的信息,返回结果代码.

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

参数

$hWnd 控件ID/句柄
$iX 测试点相对于控件的 X 位置
$iY 测试点相对于控件的 Y 位置

返回值

成功: 命中测试结果值:
1 - 在客户区末项的下面.
2 - 位于项目位图
4 - 位于项目文本
8 - 位于项目缩进
16 - 位于项目按钮
32 - 位于项目右边
64 - 位于项目用户自定义状态图标
128 - 位于客户区上方
256 - 位于客户区下方
512 - 位于客户区左边
1024 - 位于客户区右边
失败: 返回 0

注意/说明

None.

相关

_GUICtrlTreeView_HitTestItem, _GUICtrlTreeView_HitTestEx

示例/演示


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

$Debug_TV = False ; 检查传递给函数的类名, 设置为True并输出到一个控件的句柄,用于检查它是否工作

Global $hImage, $hStateImage

_Main()

Func _Main()

    Local $hItem[10], $hChildItem[30], $iYItem = 0, $iYRand, $iXRand, $hTreeView
    Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)

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

    $hTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE)
    GUISetState()

    _CreateNormalImageList()
    _GUICtrlTreeView_SetNormalImageList($hTreeView, $hImage)

    _CreateStateImageList()
    _GUICtrlTreeView_SetStateImageList($hTreeView, $hStateImage)

    _GUICtrlTreeView_BeginUpdate($hTreeView)
    For $x = 0 To 9
        $hItem[$x] = _GUICtrlTreeView_Add($hTreeView, 0, StringFormat("[%02d] New Item", $x), 4, 5)
        _GUICtrlTreeView_SetStateImageIndex($hTreeView, $hItem[$x], 1)
        For $y = 1 To 3
            $hChildItem[$iYItem] = _GUICtrlTreeView_AddChild($hTreeView, $hItem[$x], StringFormat("[%02d] New Child", $y), 0, 3)
            _GUICtrlTreeView_SetStateImageIndex($hTreeView, $hChildItem[$iYItem], 1)
            $iYItem += 1
        Next
    Next
    _GUICtrlTreeView_EndUpdate($hTreeView)

    _GUICtrlTreeView_SelectItem($hTreeView, $hItem[0])
    _GUICtrlTreeView_SetStateImageIndex($hTreeView, $hItem[0], 2)

    $iYRand = Random(0, 268, 1)
    $iXRand = Random(0, 396, 1)
    MsgBox(4160, "信息", StringFormat("Hit Test (%d, %d): %s", $iXRand, $iYRand, _GetHitString(_GUICtrlTreeView_HitTest($hTreeView, $iXRand, $iYRand))))

    ; 循环直到用户退出
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main

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()
    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 110)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 131)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 165)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 168)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 137)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 146)
EndFunc   ;==>_CreateNormalImageList

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