Function Reference


_GUICtrlHeader_HitTest

Tests a point to determine which item is at the specified point

#include <GuiHeader.au3>
_GUICtrlHeader_HitTest ( $hWnd, $iX, $iY )

Parameters

$hWnd Handle to the control
$iX X position to test
$iY Y position to text

Return Value

Returns an array with the following format:
[ 0] - 0-based index of the item at the specified position, or -1 if no item was found
[ 1] - If True, position is in control's client window but not on an item
[ 2] - If True, position is in the control's bounding rectangle
[ 3] - If True, position is on the divider between two items
[ 4] - If True, position is on the divider of an item that has a zero width
[ 5] - If True, position is over the filter area
[ 6] - If True, position is on the filter button
[ 7] - If True, position is above the control's bounding rectangle
[ 8] - If True, position is below the control's bounding rectangle
[ 9] - If True, position is to the right of the control's bounding rectangle
[10] - If True, position is to the left of the control's bounding rectangle

Example

#include <GUIConstantsEx.au3>
#include <GuiHeader.au3>

Global $g_idMemo

Example()

Func Example()
    Local $hGUI, $hHeader, $aHT

    ; Create GUI
    $hGUI = GUICreate("Header", 400, 300)
    $hHeader = _GUICtrlHeader_Create($hGUI)
    _GUICtrlHeader_SetUnicodeFormat($hHeader, True)
    $g_idMemo = GUICtrlCreateEdit("", 2, 24, 396, 274, 0)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUISetState(@SW_SHOW)

    ; Add columns
    _GUICtrlHeader_AddItem($hHeader, "Column 1", 100)
    _GUICtrlHeader_AddItem($hHeader, "Column 2", 100)
    _GUICtrlHeader_AddItem($hHeader, "Column 3", 100)
    _GUICtrlHeader_AddItem($hHeader, "Column 4", 100)

    ; Do a hit test on column 2
    $aHT = _GUICtrlHeader_HitTest($hHeader, 110, 10)
    MemoWrite("Item index ...................: " & $aHT[0])
    MemoWrite("In client window .............: " & $aHT[1])
    MemoWrite("In control rectangle .........: " & $aHT[2])
    MemoWrite("On divider ...................: " & $aHT[3])
    MemoWrite("On zero width divider ........: " & $aHT[4])
    MemoWrite("Over filter area .............: " & $aHT[5])
    MemoWrite("Over filter button ...........: " & $aHT[6])
    MemoWrite("Above bounding rectangle .....: " & $aHT[7])
    MemoWrite("Below bounding rectangle .....: " & $aHT[8])
    MemoWrite("To right of bounding rectangle: " & $aHT[9])
    MemoWrite("To left of bounding rectangle : " & $aHT[10])

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

; Write a line to the memo control
Func MemoWrite($sMessage)
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite