Function Reference

_GUICtrlListView_FindNearest

指定された位置に最も近いアイテムを検索します。

#Include <GuiListView.au3>
_GUICtrlListView_FindNearest($hWnd, $iX, $iY[, $iDir = 0[, $iStart = -1[, $fWrapOK = True]]])

 

パラメータ

$hWnd コントロールのハンドル
$iX X座標
$iY Y座標
$iDir [オプション]検索方向を指定します:
0 - 左
1 - 右
2 - 上
3 - 下
4 - 始めから
5 - 終わりから
6 - 前のアイテムから
7 - 次のアイテムから
$iStart [オプション]検索開始位置のアイテムのゼロ始まりのインデックス。-1の場合は先頭から検索します。
指定されたアイテム自体は検索対象に含まれません。
$fWrapOK [オプション]Trueの場合、一致するものがみつからなかった際に1番目のアイテムから検索が継続実行されます。

 

返し値

成功: アイテムのゼロ始まりのインデックス
失敗: -1

 

注意

この関数はラージアイコンモード、スモールアイコンモードでのみサポートされています。

 

関連

_GUICtrlListView_FindItem

 


#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>

Opt('MustDeclareVars', 1)

$Debug_LV = False ; ListView関数に渡されるClassNameを調べる。動作を確認するにはTrueを設定し、他のコントロールのハンドルを使用

_Main()

Func _Main()
    Global $hImage, $iIndex, $hListView

    ; GUIを作成
    GUICreate("ListView Find Nearest", 400, 300)
    $hListView = GUICtrlCreateListView("", 2, 2, 394, 268)
    GUICtrlSetStyle($hListView, $LVS_ICON)
    GUISetState()

    ; 画像をロード
    $hImage = _GUIImageList_Create()
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($hListView), 0xFF0000, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($hListView), 0x00FF00, 16, 16))
    _GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap(GUICtrlGetHandle($hListView), 0x0000FF, 16, 16))
    _GUICtrlListView_SetImageList($hListView, $hImage, 0)

    ; アイテムを追加
    _GUICtrlListView_AddItem($hListView, "Item 1", 0)
    _GUICtrlListView_AddItem($hListView, "Item 2", 1)
    _GUICtrlListView_AddItem($hListView, "Item 3", 2)

    ; もっと近いアイテムを検索
    $iIndex = _GUICtrlListView_FindNearest($hListView, 100, 10)
    MsgBox(4160, "Information", "Item nearest [100, 10]: " & $iIndex)

    $iIndex = _GUICtrlListView_FindNearest($hListView, 200, 10)
    MsgBox(4160, "Information", "Item nearest [200, 10]: " & $iIndex)

    ; ユーザーが終了するまでループ
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>_Main