Function Reference

_GUICtrlHeader_HitTest

指定された点がどのアイテムかを判定するために点を調べます。

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

 

パラメータ

$hWnd コントロールのハンドル
$iX 調べる点のX座標
$iY 調べる点のY座標

 

返し値

成功: 次のフォーマットの配列:
        [ 0] - 指定された位置にあるアイテムのゼロ始まりのインデックス。アイテムが見つからない場合は-1。
        [ 1] - Trueの場合、指定された位置はコントロールのクライアント領域内ですがアイテム上ではありません
        [ 2] - Trueの場合、指定された位置はコントロールの外接長方形内です
        [ 3] - Trueの場合、指定された位置は2つのアイテム間の区切り上です
        [ 4] - Trueの場合、指定された位置は厚みゼロのアイテムの区切り上です
        [ 5] - Trueの場合、指定された位置はフィルター領域上です
        [ 6] - Trueの場合、指定された位置はフィルターボタン上です
        [ 7] - Trueの場合、指定された位置はコントロールの外接長方形の上です
        [ 8] - Trueの場合、指定された位置はコントロールの外接長方形の下です
        [ 9] - Trueの場合、指定された位置はコントロールの外接長方形の右です
        [10] - Trueの場合、指定された位置はコントロールの外接長方形の左です

 

注意

なし。

 

関連

 


#include <GuiConstantsEx.au3>
#include <GuiHeader.au3>

Opt('MustDeclareVars', 1)

$Debug_HDR = False ; 関数に渡されるClassNameを調べる。動作を確認するには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)

    ; 列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

; メモコントロールに1行書き込み
Func MemoWrite($sMessage)
    GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite