_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