Функция _GUICtrlHeader_HitTest

         Описание функции


_GUICtrlHeader_HitTest

Определяет, какой пункт находится в указанных координатах

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

Параметры

$hWnd Дескриптор элемента
$iX X-координата
$iY Y-координата

Возвращаемое значение

Успех: Возвращает массив следующего формата:
        [ 0] - Индекс пункта в указанной позиции (отсчёт от 0), или -1, если ни один пункт не был найден
        [ 1] - True означает, что позиция в клиентской области элемента Header, но не на пункте
        [ 2] - True означает, что позиция в прямоугольнике ограничивающий элемент
        [ 3] - True означает, что позиция на разделителе между двумя пунктами
        [ 4] - True означает, что позиция на разделителе пункта, который имеет нулевую ширину
        [ 5] - True означает, что позиция над областью фильтра
        [ 6] - True означает, что позиция на кнопке фильтра
        [ 7] - True означает, что позиция выше прямоугольника ограничивающего элемент
        [ 8] - True означает, что позиция ниже прямоугольника ограничивающего элемент
        [ 9] - True означает, что позиция правее прямоугольника ограничивающего элемент
        [10] - True означает, что позиция левее прямоугольника ограничивающего элемент

Пример

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

$Debug_HDR = False ; Проверяет ClassName передаваемый в функции. Установите True и используйте дескриптор от другого элемента, чтобы увидеть как это работает

Global $iMemo

_Main()

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

    ; Создаёт GUI
    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 400, 300)
    $hHeader = _GUICtrlHeader_Create ($hGUI)
    _GUICtrlHeader_SetUnicodeFormat ($hHeader, True)
    $iMemo = GUICtrlCreateEdit("", 2, 24, 396, 274, 0)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

    ; Добавляет колонки
    _GUICtrlHeader_AddItem ($hHeader, "Колонка 1", 100)
    _GUICtrlHeader_AddItem ($hHeader, "Колонка 2", 100)
    _GUICtrlHeader_AddItem ($hHeader, "Колонка 3", 100)
    _GUICtrlHeader_AddItem ($hHeader, "Колонка 4", 100)

    ; Выполняет проверку нажатия на колонке 2
    $aHT = _GUICtrlHeader_HitTest ($hHeader, 110, 10)
    MemoWrite("Индекс пункта ..........: " & $aHT[ 0])
    MemoWrite("в клиентской области ...: " & $aHT[ 1])
    MemoWrite("в прямоугольнике .......: " & $aHT[ 2])
    MemoWrite("на разделителе .........: " & $aHT[ 3])
    MemoWrite("на разделителе шириной 0: " & $aHT[ 4])
    MemoWrite("над областью фильтра ...: " & $aHT[ 5])
    MemoWrite("на кнопке фильтра ......: " & $aHT[ 6])
    MemoWrite("выше прямоугольника ....: " & $aHT[ 7])
    MemoWrite("ниже прямоугольника ....: " & $aHT[ 8])
    MemoWrite("правее прямоугольника ..: " & $aHT[ 9])
    MemoWrite("левее прямоугольника ...: " & $aHT[10])

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>_Main

; Записывает строку в элемент для заметок
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite