ListView с флагом LVS_OWNERDATA - PullRequest
0 голосов
/ 23 марта 2009

Я хочу создать CListView, который будет читать его строки с удаленного сервера, используя сокет. Строк может быть больше миллиона, поэтому мне нужно читать строки только тогда, когда они мне нужны, и их можно читать в группах (с более чем одной строкой на запрос). Мне также нужно поддерживать сортировку по строкам.

Может быть, мне нужно использовать List Control с флагом LVS_OWNERDATA? И когда мне нужно прочитать еще одну группу строк? Нужны ли кнопки «Предыдущая», «Следующая», как если бы это была сетка веб-страницы?

Не могли бы вы дать мне совет?

С наилучшими пожеланиями

P.S. Но у меня есть еще одна проблема ... CListView находится в основном потоке пользовательского интерфейса, но я могу запрашивать строки только из второго потока, который не всегда доступен для использования.

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

И есть ли способ блокировать ListView для запроса информации о новых строках? Может быть, отключить его, пока мой второй поток занят?

1 Ответ

3 голосов
/ 23 марта 2009

Прочтите Рэймонда Чена о OWNERDATA списках просмотров . Вам нужно будет реализовать собственный кеш для извлеченных данных и отображать что-то разумное во время извлечения данных. Я не думаю, что кнопки Next / Prev - хорошая идея, представление списка обрабатывает собственную навигацию (полоса прокрутки, сочетания клавиш и т.

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