Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Не работает поиск в ListView


Автор: samtron 30.7.2009, 11:08
Ищу букву 'o' в таблице во второй колонке(строка содержит только букву '0'), но макрос ListView_FindItem всегда возвращает -1, подскажите пожалуйста что не так
Код

LVFINDINFO info = {0};
info.flags = LVFI_PARAM;

LVITEM lvitem = {0};
lvitem.iSubItem = 1;
lvitem.mask = LVIF_TEXT;
lvitem.pszText = "o";

info.lParam=(LPARAM)&lvitem;
ListView_FindItem(hwndList, -1, &info)


Автор: GremlinProg 30.7.2009, 11:52
попробуй искать что-нибудь другое, т.к. 'o' и '0' - разные символы, а выглядят похоже

Автор: samtron 30.7.2009, 12:12
Спасибо GremlinProg, но не сработало

Автор: GremlinProg 30.7.2009, 16:00
Код

info.flags = LVFI_STRING | LVFI_PARTIAL;
info.psz   = _T("o");
ListView_FindItem(hwndList, -1, &info);

Автор: samtron 30.7.2009, 16:13
Этот вариант я сделал сразу, НО дело в том, что мне нужно, чтобы поиск производился не в первом столбце(в нем ищет listview по умолчанию), а во втором. 

Автор: GremlinProg 30.7.2009, 17:26
а, вот как,
не заметил сразу

для столбцов, отличных от первого, функции поиска не предусмотрено, нужно выкручиваться:
либо представляться первым столбцом, на время поиска
либо писать свой поиск

второе попроще

Автор: samtron 4.8.2009, 09:41
Думал воспользоватся этим:

vkDirection
Virtual key code that specifies the direction to search. The following codes are supported:

* VK_LEFT
* VK_RIGHT

и написал следующий код:

Код

LVFINDINFO info = {0};
info.flags = LVFI_STRING | LVFI_WRAP | LVFI_PARTIAL | LVFI_NEARESTXY;
info.psz = "22";
info.vkDirection = VK_RIGHT;
ListView_FindItem(hwndList, -1, &info)


Но этот код тоже не сработал

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)