![]() |
|
|
![]()
|
|
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
Нужно скрыть (не удалить!) некоторые столбцы в CListCtrl. Не могу сообразить, как лучше сделать. Вроде, готового механизма фильтрации столбцов нет. Задание нулевой ширины работает до первого изменения ширины столбца пользователем. Поиск удовлетворительного результата тоже не дал. Кто сталкивался - подскажите, как решали проблему.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Такого решения - и иметь колонку, и не показывать ее - для List View нет. Это тебе не таблица.
Можно поставить нулевую ширину, а потом следить за сообщениями хедера, и не давать изменить эту колонку. Но это, конечно, не удовлетворительное решение: все не перехватишь, т.е. пользователь все равно сможет зацепить и потянуть, а ты максимум, что можешь - потом вернуть в 0. Посмотри HDN_ сообщения: их нужно ловить на уровне List View. Но более предпочтительный вариант - все же удалять скрытые колонки. Конечно, при этом придется заморочится с их нумерацией, но можно ведь сделать двойную индексацию: iSubItem, который передается в колонку при создании вовсе не обязан совпадать с ее реальным номером. Примерно так:
Вызываешь эту функцию при инициализации, а также при включении\выключении колонок. Это пример из реального кода, так что точно работает. Естественно, в дальнейшем нужно всегда опираться на номер саб-итема, а не колонки. -------------------- ... |
|||
|
||||
| DeadSoul |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
AlexPro, вариант - удалить все колонки, добавить нужные по каким причинам не устраивает?
P.S. Стандартного способа нет, как ты верно заметил -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
DeadSoul, рассматривал я такой вариант в самую первую очередь и пришел к выводу, что он мне не подходит. Если бы нужно было просто отобразить список, это было бы хорошим решением. Но у меня идет активная работа со списком и каждый раз нужно будет вычислять, скажем, кликнул юзер в колонке №1, или там, перед этой колонкой, были еще удаленные колонки, и сколько именно колонок было удалено - в общем, об этой проблеме упомянула Earnest. Earnest, спасибо за пример. За неимением более изящного решения воспользуюсь этим. ЗЫ: Не питаю особой нелюбви к главе Майкрософта, однако, когда сталкиваюсь с подобными вещами, ловлю себя на желании скинуться на очередной тортик для Билла Гейтса. Это сообщение отредактировал(а) AlexPro - 15.6.2006, 23:27 |
|||
|
||||
| DeadSoul |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
-------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
DeadSoul, спасибо за ссылочку, это почти то, что нужно.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |