![]() |
|
![]() ![]() ![]() |
|
NPU_gh0st |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.10.2007 Репутация: нет Всего: нет |
можно ли такое(как на рисунке) сделать через ListView (не через DBGrid), не хочу через DBGrid так как на него у меня нет описания вообще. прошу сказать возможно ли такое вообще, а если да, то как. Или иной способ динамично менять ширину строк в ListView. Если нет, то посоветуйте что нибудь. Или подкиньте ссылку на нормальное описалово DBGrid. Присоединённый файл ( Кол-во скачиваний: 53 ) ![]() |
|||
|
||||
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: 10 Всего: 18 |
-------------------- Подпись больше не нужна |
|||
|
||||
NPU_gh0st |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.10.2007 Репутация: нет Всего: нет |
Спасибо конечно (дал бы тебе +, да сообщений мало). Но я бы хотел узнать такое вообще возможно на ListView??? так как проект уже напислан с использованием этого элемента, но тут вдруг понадобилось менять ширину строки... Не хотелось бы все переписывать из-за такой мелочи. Что вы мне можете посоветовать???
|
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Теоретически можно, разными способами. 1) SetItemImage для каждого итема (картинка - это серая кнопка или серая кнопка со стрелкой). 2) Полный OwnerDraw
Но я бы посоветовала разобраться с гридом. Потому что у тебя именно грид, а не список. И может оказаться, что завтра "вдруг" потребуется еще что-то, что лист-вью стандартно не поддерживает. -------------------- ... |
|||
|
||||
NPU_gh0st |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.10.2007 Репутация: нет Всего: нет |
Earnest, спасибо за варианты.
вопросы по твоим советам: 1) а можно будет с помощью картинки менять ширину строки. 2) Полный OwnerDraw (извени но не знаю что это такое еще не встречал) - что это??? может это стиль LVS_OWNERDRAWFIXED, если да то что дальше??? (хотя я думая вряд ли) минус Grida это то что его прийдется учить искать карту откликов этого элемента (к примеру на перетаскивание, или упорядовачивания по нажатию заголовка) , сделать так чтобы выделялась только строка и т.д. А кроме как изменения ширины строки от грида ничего не нужно, может даже и стрелочка не обязательна, главное чтобы размер строки можно было поменять наведя курсор на разделительную линию (как у Grid) |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
1) Что ты подразумеваешь по шириной строки? Если высоту, то да. Собственно, только с помощью картинок ее и можно изменить (по крайней мере я другого способа не знаю). Однако имей ввиду, что высота строки одинаковая для всех элементов: она определяется высотой картинок в image-list.
А если это размер поля по горизонтали, то вообще не понимаю, в чем проблема: если есть хедер, то меняй себе этот размер сколько угодно, это стандартное поведение. 2) Да, это стиль LVS_OWNERDRAWFIXED. А дальше ты должен полностью сам отрисовать каждый итем в виртуальной функции DrawItem - учитывая все его состояния, которые туда передаются. 3) Есть еще один способ кастомизации отображения: CustomDraw. Он несколько проще, чем OwnerDraw, т.к. можно выбирать - это я рисую, а здесь пусть Windows парится. Однако, его гибкость гораздо меньше. Выполняется это через обработку сообщения WM_NOTIFY с кодом NM_CUSTMODRAW. Все это несложно, но достаточно громоздко, в двух словах не опишешь. Ищи примеры и разбирайся (например, на codeproject), будут конкретные вопросы - задашь. -------------------- ... |
|||
|
||||
NPU_gh0st |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 22.10.2007 Репутация: нет Всего: нет |
Earnest, спасибо буду искать примеры (если не сложно не кинишь ссылку на опред. пример, где это есть, желательно методов 2 и 3).
1) да это высота 2) и 3) а с их помощью можно будет поменять высоту одной строки??? еще раз спасибо |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Т.е. ты предлагаешь мне вместо тебя поискать?
![]() Нет у меня готовых ссылок. Помню, что видела на codeproject упоминания, поэтому и советую. Там достаточно простая классификация - можно по контролам искать, или по ключам LVS_OWNERDRAWFIXED или NM_CUSTOMDRAW. 2) и 3) - нельзя. Высота у всех строк будет одинаковая. Хочешь разную - пользуйся гридом. -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |