UDF > GUI > GuiTreeView >


_GUICtrlTreeView_HitTest

Retourne des informations sur l'emplacement, dans le contrôle,d'un point spécifié

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

Paramètres

$hWnd ID/handle du contrôle
$iX Position X, par rapport au contrôle, du point à tester
$iY Position Y, par rapport au contrôle, du point à tester

Valeur de retour

Succès: Retourne une valeur indiquant les résultats du test:
    1 - Dans le zone client, mais au-dessous du dernier noeud.
    2 - Sur le bitmap associé à un noeud
    4 - Sur le texte associé à un noeud
    8 - Dans l'indentation associée à un noeud
    16 - Sur le bouton associé à un noeud
    32 - Dans la zone à droite d'un noeud
    64 - Sur l'icône de l'Etat d'un noeud qui est dans un état défini par l'utilisateur
    128 - Au-dessus de la zone client
    256 - En dessous de la zone client
    512 - A la droite de la zone client
    1024 - A la gauche de la zone client
Échec: Retourne 0.

En relation

_GUICtrlTreeView_HitTestEx, _GUICtrlTreeView_HitTestItem

Exemple

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

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    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