函数参考


_GUICtrlHeader_HitTest

检查一个点以确定在指定点上是哪个项目

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

参数

$hWnd 控件句柄
$iX 检索点的 X 位置
$iY 检索点的 Y 位置

返回值

成功: 返回如下格式数组:
        [ 0] - 指定位置项目的 0 基索引, 或没找到时为 -1
        [ 1] - 如为 True, 则位置在控件客户窗口内,但没有项目上
        [ 2] - 如为 True, 则位置在控件的边界矩形内
        [ 3] - 如为 True, 则位置在两项目的分隔符上
        [ 4] - 如为 True, 则位于一个 0 宽度项目的分隔符上
        [ 5] - 如为 True, 则位于过滤区域上
        [ 6] - 如为 True, 则位于过滤器按钮上
        [ 7] - 如为 True, 则位于控件边界矩形的上方
        [ 8] - 如为 True, 则位于控件边界矩形的下方
        [ 9] - 如为 True, 则位于控件边界矩形的右侧
        [10] - 如为 True, 则位于控件边界矩形的左侧

注意/说明

None.

相关

示例/演示


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

$Debug_HDR = False ; 检查传递给函数的类名, 设置为True并输出到一个控件的句柄,用于检查它是否工作

Global $iMemo

_Main()

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

    ; 创建 GUI
    $hGUI = GUICreate("Header", 400, 300)
    $hHeader = _GUICtrlHeader_Create($hGUI)
    $iMemo = GUICtrlCreateEdit("", 2, 24, 396, 274, 0)
    GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
    GUISetState()

    ; 添加列
    _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])

    ; 循环直到用户退出
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>_Main

; 写入一行到 memo 控件
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite