Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Жирные тоже плачут / 17 сообщений из 17, страница 1 из 1
18.02.2004, 13:08
    #32413399
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Хотел в списке выделить один из пунктов жирным шрифтом , чтобы было видно, какой пункт был выбран исходно. С огорчением обнаружил, что в CListBox такой возможности нет. С удивлением обнаружил, что и в CListCtrl нет! Тогда я занялся owner draw'ом, но потом нашёл более простое решение.

А вы? :)
...
Рейтинг: 0 / 0
18.02.2004, 13:46
    #32413539
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Ой а нам еще долеко до этого
____
...
Рейтинг: 0 / 0
18.02.2004, 13:53
    #32413555
SnowMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Согласен с JibSkeart, для юзающих C++Builder такие проблемы действительно делеки, только не еще а уже .
...
Рейтинг: 0 / 0
18.02.2004, 15:20
    #32413807
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Т.е. твой способ работает для CListBox и для CListCtrl и не использует OWNERDRAW ?
...
Рейтинг: 0 / 0
18.02.2004, 15:55
    #32413894
_Konst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Рискну предположить, что имеется в виду перехват сообщения NM_CUSTOMDRAW
...
Рейтинг: 0 / 0
18.02.2004, 17:12
    #32414081
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Tracer
Не совсем. Я использовал вместо списка дерево :)
(а CTreeCtrl поддерживает жирный шрифт)
...
Рейтинг: 0 / 0
18.02.2004, 19:04
    #32414312
DarkCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Ой Вэй из Харькова нам писалХотел в списке выделить один из пунктов жирным шрифтом , чтобы было видно, какой пункт был выбран исходно.
С огорчением обнаружил, что в CListBox такой возможности нет.
С удивлением обнаружил, что и в CListCtrl нет!
Тогда я занялся owner draw'ом, но потом нашёл более простое решение.

А вы? :)

Хотел я как-то раз укусить себя зубами за жопу , чтобы.. чтобы.. да просто делать было нех.., вот и решил.
С огорчением обнаружил, что дотянуться до неё зубами возможности нет.
С удивлением обнаружил, что и дотянуться жопой до зубов никак!
Тогда я занялся о#####'ом, но потом нашел более простое решение.

А вы? :)
...
Рейтинг: 0 / 0
19.02.2004, 09:53
    #32414688
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
2DarkCat

Ээээ что енто с тобой ???
такую культурную беседу исковеркал

____
...
Рейтинг: 0 / 0
19.02.2004, 09:56
    #32414694
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
стиль такой
...
Рейтинг: 0 / 0
19.02.2004, 12:51
    #32415105
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
2SnowMan
Т.е. в Билдере это сделать легко?
Интересно, а есть ли там такое понятие, как "недоступный пункт"? Т.е. он виден, но его нельзя выбрать.
...
Рейтинг: 0 / 0
19.02.2004, 13:02
    #32415141
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Насколько я помню нету .
если толко сам ручками :)
____
...
Рейтинг: 0 / 0
19.02.2004, 16:42
    #32415809
_Konst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
А я вот опробовал-таки NM_CUSTOMDRAW...
классная вещь оказалась и хлопот немного... правда CListBox этого не поддерживает, но вот в CListCtrl можно делать все, что хочешь - хоть жирный, хоть подчеркнутый... а цвет текста у разных элементов поменять и вовсе нефиг делать
зато в CListBox можно делать item-ы разной высоты, что может потребоваться в случае сильно разного рамера шрифтов.
"С удивлением обнаружил..." (С), что у CListCtrl такой возможности нет... может кто знает, как ему объяснить, что строки должны быть разной высоты?
...
Рейтинг: 0 / 0
19.02.2004, 18:09
    #32416009
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
2_Konst
Похоже, что и правда нет...

Вот тут я нашёл пару извращений для борьбы с этим:
http://www.sources.ru/cpp/mfc/t9107.htm

Что самому рисовать очень просто согласиться не могу. На каждый чих надо писать три-четыре строки кода (например, надо прочитать несколько системных цветов). А чтобы нарисовать жирным шрифтом, как я понимаю, надо создавать шрифт, выбирать его для DC и.т.д.
...
Рейтинг: 0 / 0
19.02.2004, 18:24
    #32416030
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
--Ой Вэй
Интересно, а есть ли там такое понятие, как "недоступный пункт"?

как ты себе это представляешь установить, если списка еще нет в дизайн моде ?
...
Рейтинг: 0 / 0
19.02.2004, 18:49
    #32416066
SnowMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
2 Ой Вэй
авторИнтересно, а есть ли там такое понятие, как "недоступный пункт"? Т.е. он виден, но его нельзя выбрать.

Недоступного пункта списка конечно нет.
Однако если очень хочется, то можно. На базе ListView очень просто в обработчике OnSelectItem надо написать 2 строчки:

Код: plaintext
1.
if (условие недоступности) 
     Selected = false;

Если еще хочется покрасить в цвет недоступного объекта, то в обработчике OnDrawItem тоже 2 строчки:

Код: plaintext
1.
if (условие недоступности) 
     ListView1->Canvas->Pen->Color = clGrayText;


PS 1. Заголовки обработчиков Builder пишет сам.
2. HDC определять не надо, шрифт создавать тоже.

Итого 4 строки.
...
Рейтинг: 0 / 0
20.02.2004, 11:26
    #32416609
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
Щас я вам всё испорчу

Как на счёт тоже самое сделать в Combo-box'е?
...
Рейтинг: 0 / 0
22.02.2004, 14:21
    #32418025
SnowMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Жирные тоже плачут
В обработчике OnDrawItem

Код: plaintext
1.
2.
 if (Index %  3  ==  2 ) // Например каждая третья строка недоступна
     ComboBox1->Canvas->Font->Color = clGrayText;
 ComboBox1->Canvas->TextOut( 1 , Rect.Top+ 1 , ComboBox1->Items->Strings[Index]);

В обработчике OnKeyDown

Код: plaintext
 OldItemIndex = ComboBox1->ItemIndex; // OldItemIndex - общая переменная

В обработчике OnKeyUp

Код: plaintext
1.
2.
3.
4.
5.
 if (ComboBox1->ItemIndex %  3  ==  2 )
     if (ComboBox1->ItemIndex > OldItemIndex &&
         ComboBox1->ItemIndex < ComboBox1->Items->Count- 1 )
          ComboBox1->ItemIndex++;
     else
          ComboBox1->ItemIndex--;

В обработчике OnClick

Код: plaintext
1.
 if (ComboBox1->ItemIndex %  3  ==  2 )
     ComboBox1->ItemIndex--;


Пишите на Builder-e - круто. Если круто писать конечно.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Жирные тоже плачут / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]