Есть ли способ получить количество подпунктов в просмотре списка? - PullRequest
4 голосов
/ 12 марта 2009

Я пишу приложение на C #, которое должно извлекать данные из элемента управления ListView, находящегося во внешнем процессе.

У меня уже есть код для извлечения данных и получения количества элементов в ListView, но мне нужен эквивалент следующего для подпунктов:

    public int GetListViewRowCount()
    {
        if (list_view_handle != null)
        {
            return (int)UnManagedMethods.SendMessage(list_view_handle,
                (int)UnManagedMethods.W32_LVM.LVM_GETITEMCOUNT,
                IntPtr.Zero, IntPtr.Zero);
        }
        else return 0;
    }

Я в основном ищу функциональность, предоставляемую сообщением типа LVM_GETSUBITEMCOUNT.

1 Ответ

1 голос
/ 17 апреля 2009

Вам необходимо отправлять LVM_GETITEM (другому процессу) каждый раз, увеличивая размер iSubItem, пока не получите FALSE.
Не забывайте, что указатель на pItem должен быть валидным в другом процессе, поэтому вам нужно использовать методы выделения памяти для другого процесса. Вот ссылка, которую я использовал в прошлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...