Добавление элементов в SysListView32
Существует ли способ добавить в SysListView32 строки/столбцы, кроме как через SendMessage ?
Макрос ListView_InsertItem - это всё тот же переобёрнутый SendMessage.
Возможно ли, например, при создании SysListView32 указать желаемую размерность, а не вызывать SendMessage для каждой строки/столбца ?
Либо может есть ещё какие-то варианты ?
Что значит размерность, поясните пожалуйста.
Количество строк * Количество столбцов
Аудитория задается вопросом: с какой проблемой борется автор?
По мне, это примерно как вызывать malloc для каждого байта из всего требуемого размера.
Цитата: Himmler
С проблемой поштучного добавления. Это требует и процессорного времени, и большего размера кода.
По мне, это примерно как вызывать malloc для каждого байта из всего требуемого размера.
По мне, это примерно как вызывать malloc для каждого байта из всего требуемого размера.
А что если таки почитать MSDN внимательно? ListView_SetItemCount/ListView_SetItemCountEx
PS: И в дополнение, не перерисовывать элементы управления почем зря.
И WM_PAINT блочить я тоже умею.
Ни то, ни другое не имеет отношения к заданному вопросу, суть остаётся прежней.
Для каждого элемента надо вызывать SendMessage.
Да, оба приведённых выше метода позволяют выполнить добавление быстрее, но никак не уменьшает количество вызовов.
Очень хотелось бы ответов не в стиле "А зачем оно нужно?" или "А вот почитайте MSDN".
Всё очевидное я давно уже просмотрел и перепробовал.
Именно поэтому спросил здесь про альтернативные методы.
Virtual List-View Style коий также упоминается в API выше.
Если вас не устраивает ничего из вышеперечисленного, то кроме как добавить "учитесь ходить через открытую дверь в виде API, а не ломиться в бетонную стену рядом" мне нечего.
PS: Возможно у уважаемой аудитории еще есть что добавить.
PPS: Если список столь большой, что вас не устраивает даже т.н. виртуальный список, то возможно представление данных в пользовательском интерфейсе структурировано не должным образом.
Самый альтернативный это
Если вас не устраивает ничего из вышеперечисленного, то кроме как добавить "учитесь ходить через открытую дверь в виде API, а не ломиться в бетонную стену рядом" мне нечего.
PS: Возможно у уважаемой аудитории еще есть что добавить.
PPS: Если список столь большой, что вас не устраивает даже т.н. виртуальный список, то возможно представление данных в пользовательском интерфейсе структурировано не должным образом.
Так что да - альтернативы нет.
PS Кстати SysTreeView32 работает еще интереснее.
PPS И полностью согласен с Ramon PPS. Основная проблема всегда не на стороне API.