Функция _GUICtrlListView_FindNearest

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


_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

Примечания

Эта функция поддерживает только режим больших и маленьких иконок

См. также

_GUICtrlListView_FindItem

Пример

#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>

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

_Main()

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

    ; Создаёт GUI
    GUICreate("ListView - Поиск ближайшего пункта", 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, "Пункт 1", 0)
    _GUICtrlListView_AddItem($hListView, "Пункт 2", 1)
    _GUICtrlListView_AddItem($hListView, "Пункт 3", 2)

    ; Поиск ближайшего пункта
    $iIndex = _GUICtrlListView_FindNearest($hListView, 100, 10)
    MsgBox(4160, "Информация", "Ближайший пункт [100, 10]: " & $iIndex)

    $iIndex = _GUICtrlListView_FindNearest($hListView, 200, 10)
    MsgBox(4160, "Информация", "Ближайший пункт [200, 10]: " & $iIndex)

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