Gibt Informationen über den Ort eines Punktes relativ zu dem Control zurück
#include <GuiTreeView.au3>
_GUICtrlTreeView_HitTest ( $hWnd, $iX, $iY )
$hWnd | Control-ID / Handle des Controls |
$iX | zu testende X Position relativ zum Control |
$iY | zu testende Y Position relativ zum Control |
Erfolg: | Wert der ein Hinweis für das Ergebnis des Hit-Testes ist: 1 - In der Arbeitsfläche, aber unterhalb des letzten Items. 2 - Auf dem Bitmap, welches mit einem Item verknüpft ist 4 - Auf dem Text, welcher mit einem Item verknüpft ist 8 - In der Einrückung, welche mit einem Item verknüpft ist 16 - Auf dem Button, welcher mit einem Item verknüpft ist 32 - Im Bereich rechts von einem Item 64 - Auf dem Statusicon für ein Item, welches sich in einem benutzerdefinierten Status befindet 128 - Oberhalb der Arbeitsfläche 256 - Unterhalb der Arbeitsfläche 512 - Links von der Arbeitsfläche 1024 - Rechts von der Arbeitsfläche |
Fehler: | 0 |
- - - - - - - - Erklärung der Controls - - - - - - - -
_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: Gibt Informationen über den Ort eines Punktes (v" & @AutoItVersion & ")", 600, 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] Neues Item", $x), 4, 5)
_GUICtrlTreeView_SetStateImageIndex($idTreeView, $ahItem[$x], 1)
For $y = 1 To 3
$aidChildItem[$iYItem] = _GUICtrlTreeView_AddChild($idTreeView, $ahItem[$x], StringFormat("[%02d] Neues 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))))
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>Example
Func _GetHitString($iResult)
Switch $iResult
Case 1
Return "Im Anwendungsbereich, aber unterhalb des letzten Items"
Case 2
Return "Über dem Bild, das mit einem Item verknüpft ist"
Case 4
Return "Über dem Text, der mit einem Item verknüpft ist"
Case 8
Return "Über der Einrückung, die mit einem Item verknüpft ist"
Case 16
Return "Über dem Button, der mit einem Item verknüpft ist"
Case 32
Return "Im Bereich rechts neben einem Item"
Case 64
Return "Über dem Status-Icon eines Items, das sich in einem benutzerdefinierten Zustand befindet"
Case 128
Return "Oberhalb des Anwendungsbereichs"
Case 256
Return "Unterhalb des Anwendungsbereichs"
Case 512
Return "Links neben dem Anwendungsbereich"
Case 1024
Return "Rechts neben dem Anwendungsbereich"
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