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

Example 1

#include "Extras\HelpFileInternals.au3"

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

Example()

Func Example()
    ; Create GUI
    Local $hGUI = GUICreate("Header Hit Test (v" & @AutoItVersion & ")", 450, 300, 100, 100)
    Local $hHeader = _GUICtrlHeader_Create($hGUI)
    _MemoCreate(2, 52, 444, 220)

;~  _GUICtrlHeader_SetUnicodeFormat($hHeader, True)

    GUISetState(@SW_SHOW)

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

    ; Do a hit test on column 1
    Local $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])

    _MemoMsgBoxStatus("", -1, $hGUI) ; no more action, wait GUI for closing

EndFunc   ;==>Example

Example 2 : Header Hit Test from an External process

#include "Extras\HelpFileInternals.au3"

#include <GuiHeader.au3>

Example()

Func Example()
    Local $sFromTo
    Local $hWin = _MemoRunAU3OutProcess($sFromTo) ; OK if run in different Mode

    Local $hHeader = _MemoCreateOutProcess($hWin, "SysHeader32", 0, $sFromTo)

    ; Do a hit test on column 2
    Local $aHT = _GUICtrlHeader_HitTest($hHeader, 250, 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])

    _MemoMsgBoxStatus("", -1, $hWin) ; no more action, wait GUI for closing

EndFunc   ;==>Example