ListView - поиск с выделением.
для выделения сообщение LVM_SETITEM
перебираешь по порядку
LB_GETTEXTLEN - узнаешь размер строки
LB_GETTEXT - получаешь строку в буфер
LB_SETCURSEL - устанавливаешь выделение в нужной позиции
ой, это ListView, тогда простите ;)
НЕТ :). Я по вопросу пробежался, подумал про LISTBOX разговор идет, еще раз прошу прощения:(
зы. Хотя возможно некоторые сообщения и совпадают
local item:DWORD
mov [lvf.flags], LVFI_STRING
lea eax, [str]
mov [lvf.psz], eax
invoke SendMessage,[hlist],LVM_FINDITEM,[sts],lvf
cmp eax, -1
je error_find
mov [item], eax
invoke SendMessage,[hlist],LVM_GETITEMPOSITION,eax,pt
mov eax, [pt.x]
mov ecx, [pt.y]
invoke SendMessage,[hlist],LVM_SCROLL,eax,ecx
ret
error_find:
invoke MessageBeep,TRUE
ret
endp
Где sts - это пункт с которого начнем поиск, str - строка которую ищем, lvf это структура LV_FINDINFO и pt структура POINT.
для выделения сообщение LVM_SETITEM
Так с выделением разобрался, (большое спасибо) но с поиском проблема... Я знаю про LVM_FINDITEM, но если вам не трудно обьясните подробней про LV_FINDINFO. К примеру, что такое и для чего: LVFI_PARAM, LVFI_PARTIAL, LVFI_WRAP, LVFI_NEARESTXY? Может у кого есть API пример (не важно какой язык) я буду признателен...
Это флаги поиска
LVFI_PARAM - поиск итема (узла) с значением LVITEM.lParam таким же как указанное в LVFINDINFO.lParam. Указание флага LVFI_PARAM отменяет действие всех остальных флагов.
LVFI_PARTIAL - проверка на то что текст итема лишь начинается со стоки переданной в LVFINDINFO.psz Флаг подразумевает использование и LVFI_STRING.
LVFI_STRING - Поиск по тексту итема. Пока не указано иное, текст итема должен точно совпадать со строкой в LVFINDINFO.psz. Однако поиск нечуствителен к регистру.
LVFI_SUBSTRING - в Windows Vista и позже. Эквивалент LVFI_PARTIAL.
LVFI_WRAP - Продолжение поиска с начала при ненайденном совпадении.
LVFI_NEARESTXY - Поиск итема ближайшего к позиции указанной в LVFINDINFO.pt, в направлении указанном в LVFINDINFO.vkDirection. Флаг поддерживается только для режимов large icon и small icon.
Перевод MSDN (c) by Я :)