ListView - изменение цвета фона ячейки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

ListView - изменение цвета фона ячейки

Сообщение djalex777 » 27.08.2008 (Ср) 13:18

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

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: ListView - изменение цвета фона ячейки

Сообщение Viper » 27.08.2008 (Ср) 13:26

Возможно. Смоттеть в сторону самостоятельной перерисовки данного контрола.
Весь мир матрица, а мы в нем потоки байтов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 27.08.2008 (Ср) 13:59

... но нафиг никому не нужно. Рекомендуется обосновать, зачем это понадобилось.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: ListView - изменение цвета фона ячейки

Сообщение Денис » 27.08.2008 (Ср) 14:14

Дададад! Возможно Вам лучше grid подойдет?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 27.08.2008 (Ср) 14:16

Зачем понадобилось изменить цвет фона ячейки? Вот пример.
P.S. По-поводу никому ненужно - иногда определяет, что нужно, а что нет, третье лицо... Или никому не нужно, всмысле для listview? Другой контрол уже нет желания использовать - слишком много переписывать ...
Вложения
screen.JPG
screen.JPG (27.99 Кб) Просмотров: 2102

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 27.08.2008 (Ср) 14:39

Ну почему некоторым хочется сделать что-то до блевоты противное?

Ну есть же у ListView группы. Зачем изобретать собственное желтое противное уродство, когда есть готовый и красивый встроенный механизм?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Re: ListView - изменение цвета фона ячейки

Сообщение BV » 27.08.2008 (Ср) 14:41

Можно обойтись и без OWNERDRAW :)

http://forum.sources.ru/index.php?showtopic=157135
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 27.08.2008 (Ср) 18:35

Хакер писал(а):Ну почему некоторым хочется сделать что-то до блевоты противное?

Ну есть же у ListView группы. Зачем изобретать собственное желтое противное уродство, когда есть готовый и красивый встроенный механизм?


А можно подробнее о группах? У стандартного ListView нет такого элемента. В .NET есть. Ещё насколько знаю, группы поддерживаются только xp и выше. Или я не прав?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 27.08.2008 (Ср) 18:43

djalex777 писал(а):А можно подробнее о группах?

Что именно?

У стандартного ListView нет такого элемента.

Какого ещё элемента? Или ты хотел сказать, что у стандартного ListView нет поддержки групп? Есть. У стандартного ListView есть поддержка групп.

В .NET есть

.NET — must die in sufferings.

Ещё насколько знаю, группы поддерживаются только xp и выше. Или я не прав?

Группы поддерживаются в comctl 6.0 и выше.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 27.08.2008 (Ср) 19:05

А как пользоваться группами? Может какой-то примерчик

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 27.08.2008 (Ср) 19:34

Примерчика нет. Пользоваться так же, как и всем остальным. MSDN в помощь тебе.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: ListView - изменение цвета фона ячейки

Сообщение Proxy » 27.08.2008 (Ср) 21:46

Чем обоснован выбор ListView? В скрине с расписанницем я как минимум 2 решения более рациональных и эстетичных вижу (в т.ч. и с использованием того же ListView, но без всякого уцветнения ячеек).
А насчёт стандартных выходов из положения: переделать код под TreeView очень несложно. Уверяю. Почти вся работа уйдёт в автозамену.
Follow the white rabbit.

BasiС
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 64
Зарегистрирован: 16.02.2006 (Чт) 23:34
Откуда: Koenigsberg

Re: ListView - изменение цвета фона ячейки

Сообщение BasiС » 28.08.2008 (Чт) 18:41

djalex777 писал(а):Возможно ли поменять цвет фона ячейки, либо строки целиком? Если возможно, то натолкните хоть на мысль как это сделать?


Если очень хочется - то можно. В аттаче пример, как можно закрасить строчку в ListView.
Пример выдран из проекта, т.ч. код может быть избыточным, что не мешает ему быть рабочим =)

Условие закраски и цвет выставляется в модуле mdlDrawLV
Вложения
ListViewEx.zip
ListView - изменение цвета фона строки
(5.93 Кб) Скачиваний: 229

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 28.08.2008 (Чт) 18:57

И ведь нет, чтобы поддержать отговорить автора вопроса от гадости, — они помогают ему эту гадость реализовать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 28.08.2008 (Чт) 19:51

BasiС, спасибо, в этом направлении сейчас и смотрю
Хакер, я не спорю, что использование групп может быть лучше. Но мне в этом нужно убеждать "третьих" лиц, а в этом смысла я не вижу. Группы использовать можно, но для этого нужно "дописывать" listview, плюс неоткомпилированный пример работать не будет, будет работать скомпилированный с рядом лежащим или встроенным manifest. Или я не прав?

P.S. Сам реализовал это с помощью создания picture для listview ... )) Быстро нужно было... Сейчас смотрю в сторону CustomDraw

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 28.08.2008 (Чт) 21:00

Но мне в этом нужно убеждать "третьих" лиц, а в этом смысла я не вижу.

Каких ещё третьих лиц? И почему ты не видешь смысла в убеждении третьих лиц?

Группы использовать можно, но для этого нужно "дописывать" listview

А?

плюс неоткомпилированный пример работать не будет

Неоткомпилированный вариант неколышет пользователя. Да, в неоткопилированном варианте не будет корректно работать оформление. Но будет работать функциональность. Для отладки нужна именно она. А проверить, работает ли оформление можно на откомпилированном варианте.

с рядом лежащим или встроенным manifest

Да. И? Что-то в этом сложного есть, или что? Это что-ли сложнее, чем заниматься ownerdraw-ингом самому?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 28.08.2008 (Чт) 21:22

Третьи лица, например заказчики программы. Вот хотят они чтоб желтеньким было так как в примере и все тут...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 28.08.2008 (Чт) 21:25

Заказчики, которые в силу своего дятилизма не видят, что группы лучше желтой (выделяемой к тому же, что ещё более ужасно) полоски, должны идти нафиг.

Переубеждать заказчика в этом смысл есть. Если заказчик не переубедится, есть смысл разрывать контракт с таким заказчиком.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 28.08.2008 (Чт) 22:37

Переубеждать есть смысл тогда, когда предлагаемый заказчиком вариант намного сложнее того, которым хочешь воспользоваться ты. Предложить и объяснить преимущества своего варианта можно всегда, но не всегда их принимают. А вот разрывать контракты с заказчиками из-за мелочей, мягко говоря, не правильно.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 28.08.2008 (Чт) 22:50

djalex777 писал(а):Переубеждать есть смысл тогда, когда предлагаемый заказчиком вариант намного сложнее того, которым хочешь воспользоваться ты.

Чтобы что? Чтобы было легче себе-любимому? Фу.

djalex777 писал(а):А вот разрывать контракты с заказчиками из-за мелочей, мягко говоря, не правильно.

Из-за мелочей — чертовски неправильно. Но мы не о мелочах. Если заказчик дятел — это не мелочь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 28.08.2008 (Чт) 23:01

Да. Именно для того, чтобы было легче. Фу - не объективно. Данная задача и то, как видит ее заказчик - это мелочь.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: ListView - изменение цвета фона ячейки

Сообщение Хакер » 28.08.2008 (Чт) 23:47

То, что ты из двух вариантов: нормального и поганого — выбираешь поганый, потому что так будет легче и проще тебе, вот по этому и фу. Фу и дизреспект. Очень большой дизреспект.

Программист делает хорошую программу, и за это получает деньги.
У тебя же получается так: Программист зарабатывает хорошие деньги, и для этого пишет программу.

Гораздо проще было бы сделать мышку в форме простого параллелипипеда. Его было бы очень просто производить. Но десятки сотни людей работают над тем, чтобы мышку было как можно более удобнее держать в руке. Кнопки на клавиатуре разместили не так, как было проще изобретателю (в случайном или алфавитном) порядке, а так, как будет лучше пользователям.

Некоторые программисты забывают, что то, что они делают, предназначено для пользователей.


djalex777 писал(а): Данная задача и то, как видит ее заказчик - это мелочь.

Если заказчик считает, что желтый пункт в качестве разделителя групп лучше, чем разделитель групп в качестве разделителя групп, то он идиот. С такими надо разрывать контракт.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: ListView - изменение цвета фона ячейки

Сообщение alibek » 29.08.2008 (Пт) 7:25

Хакер писал(а):Кнопки на клавиатуре разместили не так, как было проще изобретателю (в случайном или алфавитном) порядке, а так, как будет лучше пользователям.


Это ты про QWERTY что-ли? Ерунда, удобство пользователя тут не причем.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: ListView - изменение цвета фона ячейки

Сообщение Денис » 29.08.2008 (Пт) 7:58

Клавиатура делалась ради удобства пользователя печатной машинки (машинистки то-есть) буквы подобраны так, чтобы более часто используемые были в центре, и чтобы буквы, образующие слог набирались разными пальцами. Это сделано, я повторюсь, для удобства пользователя.

А с Хакером я согласен. Дело не в этом желтом разделителе-строке. Дело в том, что если постоянно потакать заказчику, то все эти мелкие глупости, реализованные с его подачи, в целом дадут глупый и неюзабельный продукт (типа программного комплекса "Талисман" например (дададад! это АнтиРеклама)) - и в неюзабельности программного продукта и пользователи и представители заказчика будут винить именно программиста!
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: ListView - изменение цвета фона ячейки

Сообщение djalex777 » 29.08.2008 (Пт) 11:36

Хакер писал(а):То, что ты из двух вариантов: нормального и поганого — выбираешь поганый, потому что так будет легче и проще тебе...


А? Ты о чём? Кто такое сказал? В данном случае я из двух вариантов выбираю тот, который хочет заказчик, так как другое ему не нужно. Во-вторых, я писал, что из двух вариантов я выберу более простой для решения задачи. Неужели ты не понимаешь что это значит? Объясню - есть два варианта посчитать сумму двух чисел - заказчик предлагает сделать так x= c+a+b-c, а я думаю, что проще будет x=a+b. Я выберу свой вариант, потому что он проще. И в этом случает буду доказывать заказчику, что нужно использывать мой вариант. А вот результат-то получается один и тот же. И пользователь ничего не теряет и на его удобство это не влияет.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

    TopList  
cron