Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6444
Последний выпуск: 19.06.2015

Добавление элементов в SysListView32

87K
15 апреля
Himmler
4 / / 15.04.2018
Здравствуйте.

Существует ли способ добавить в SysListView32 строки/столбцы, кроме как через SendMessage ?
Макрос ListView_InsertItem - это всё тот же переобёрнутый SendMessage.
Возможно ли, например, при создании SysListView32 указать желаемую размерность, а не вызывать SendMessage для каждой строки/столбца ?
Либо может есть ещё какие-то варианты ?
325
17 апреля
Yos
209 / / 21.06.2003
Что значит размерность, поясните пожалуйста.
87K
17 апреля
Himmler
4 / / 15.04.2018
Количество строк * Количество столбцов
247
20 апреля
Ramon
1.1K / / 16.08.2003
Аудитория задается вопросом: с какой проблемой борется автор?
87K
20 апреля
Himmler
4 / / 15.04.2018
С проблемой поштучного добавления. Это требует и процессорного времени, и большего размера кода.
По мне, это примерно как вызывать malloc для каждого байта из всего требуемого размера.
247
20 апреля
Ramon
1.1K / / 16.08.2003
Цитата: Himmler
С проблемой поштучного добавления. Это требует и процессорного времени, и большего размера кода.
По мне, это примерно как вызывать malloc для каждого байта из всего требуемого размера.

А что если таки почитать MSDN внимательно? ListView_SetItemCount/ListView_SetItemCountEx

PS: И в дополнение, не перерисовывать элементы управления почем зря.

87K
21 апреля
Himmler
4 / / 15.04.2018
Я умею пользоваться MSDN, и все макросы ListView я давно перелопатил.
И WM_PAINT блочить я тоже умею.

Ни то, ни другое не имеет отношения к заданному вопросу, суть остаётся прежней.
Для каждого элемента надо вызывать SendMessage.
Да, оба приведённых выше метода позволяют выполнить добавление быстрее, но никак не уменьшает количество вызовов.

Очень хотелось бы ответов не в стиле "А зачем оно нужно?" или "А вот почитайте MSDN".
Всё очевидное я давно уже просмотрел и перепробовал.
Именно поэтому спросил здесь про альтернативные методы.
247
21 апреля
Ramon
1.1K / / 16.08.2003
Самый альтернативный это Virtual List-View Style коий также упоминается в API выше.

Если вас не устраивает ничего из вышеперечисленного, то кроме как добавить "учитесь ходить через открытую дверь в виде API, а не ломиться в бетонную стену рядом" мне нечего.

PS: Возможно у уважаемой аудитории еще есть что добавить.
PPS: Если список столь большой, что вас не устраивает даже т.н. виртуальный список, то возможно представление данных в пользовательском интерфейсе структурировано не должным образом.
325
23 апреля
Yos
209 / / 21.06.2003
SendMessage в вашем случае, по большому счету, это не более чем вызов процедуры установки универсального значения. Если вдруг, когда-нибудь, вы решите написать свою собственную реализацию отображения списка, то данная функция просто будет называть иначе. Или перегружаться в зависимости от типа устанавливаемого значения. И все. Оптимизация по скорости и ресурсам возможна только при проприетарной реализации. Но далеко не факт, что общая производительность общего кода будет значительно выше.

Так что да - альтернативы нет.

PS Кстати SysTreeView32 работает еще интереснее.
PPS И полностью согласен с Ramon PPS. Основная проблема всегда не на стороне API.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог