![]() |
Поиск элемента в ListView
Люди, помогите, что в этом куске кода неправильно:
LVFINDINFO info = {0}; info.flags=LVFI_STRING|LVFI_PARTIAL|LVFI_WRAP; info.psz="Text"; int itemidx=0; itemidx = SendMessage(hTarget, LVM_FINDITEM, -1, (LPARAM) (const LVFINDINFO *)&info); Этот код должен искать элемент, начинающийся с "Text", однако он все время возвращает либо -1 (не найден), либо ссылки на другие элементы :( Если затем попробовать что-нить другое делать с этим списком (например сообщением LVM_SETITEMPOSITION), то оно работает. А вот поиск - никак :( |
Ответ нашел сам :)
by Рихтер: "Проблема в том, что большинство оконных сообщений для стандартных элементов управления (например, LVM_GETITEM и LVM_GETITEMPOSITION) не может преодолеть границы процессов." Ну соответственно я и пытался "преодолеть границы процессов." :( |
Ну чтож ты сразу не сказал что с чужим процессом пытаешся работать? Границы процесса нам не помеха.
Есть у меня функция которая получает текст из ListCtrl чужого процесса. По аналогии и поиск сделать можно. Работает на кернелах NT, если нужно будет для Win9x , напиши, есть код и для него. Код:
typedef LPVOID (__stdcall * PFNVIRTALLEX)(HANDLE, LPVOID, DWORD, DWORD,DWORD); |
Кабы знал, что в этом была проблема, сказал бы :)
|
| Часовой пояс GMT +4, время: 23:53. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.