Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание CheckListBox средствами WinAPI. [D7, WinXP]


gdaujk ©   (2005-05-29 01:26:00) 

Ну всё вроде понятно из темы.

В VCL это реализовано сл. образом. Создаётся листбокс, икаждый итем в нём перерисовывается, а именно, добавляется стандартное изображение чекбокса, текст сдвигается. Но это очень сложно, особенно если нужно использование визуальных стилей оформления (UXTheme, помнится). И после обрабатывается каждое нажатие на итем.

Может есть варианты попроще, типа какого-нибудь стандартного стиля, о котором  я не знаю (тот же ListBox, только с галочками)?

PS: о возможности такого варианта можно предположить, заня очень неуклюжую реализацию в VCL SpinButton'а и SpinEdit'а.


gdaujk   (2005-05-30 12:10:00) [1]

>>Игорь Шевченко [14]

gdaujk [0]
Может есть варианты попроще, типа какого-нибудь стандартного стиля


ListView ведь предусматривает создание Gheckbox, только как ими пользоваться не понятно. Самое непонятное - как избавится от чёрных краёв...


Игорь Шевченко   (2005-05-30 11:55:00) [2]

gdaujk ©   (30.05.05 11:42) [13]


> Меня не устраивает это вариант, см. выше...


А кто-то мешает рисовать с использованием стилей ?


gdaujk   (2005-05-30 11:42:00) [3]

Игорь Шевченко [12]

Исходный текст чего? VCL? Меня не устраивает это вариант, см. выше...


Игорь Шевченко   (2005-05-30 11:11:00) [4]


> Создание CheckListBox средствами WinAPI


Берется исходный текст, изучается...


Marser   (2005-05-29 10:00:00) [5]


> Чё то не приходит в голову, каким образом связаны
> ScrollBox и CheckBox...

GroupBox - сделать родительским окном для CheckBox. И делоф...


TUser   (2005-05-29 07:43:00) [6]

Возможно, проще окажется использовать ListVeiw


gdaujk   (2005-05-29 06:13:00) [7]

На скока я понял, в VCL тоже столкнулись с этой проблеммой, только при загрузке изображения Checkbox'а. У этого изображения в зависимости от используемого стиля края могут быть чёрными. Их и надо закрасить в прозрачный/белый цвет. В VCL рисуют рамочку вокруг изображения Checkbox'а. При этом часть галочки, которая нарисована в этой рамке тоже закрашивается. А лучше было бы заменить только чёрные пикселы на прозрачные...

Так вот вопрос - как сделать края прозрачными в моём случае?


gdaujk   (2005-05-29 03:09:00) [8]

ListView_SetBkImage - ??? Одни вопросы :-)


gdaujk   (2005-05-29 02:47:00) [9]

ListView_GetCheckState - чего делаит? Узнаёт, есть ли калочка в чекбоксе? В документации ничего нету :-(


gdaujk   (2005-05-29 02:35:00) [10]

Чёрные края - это в зависимости от визуального стиля. Только как от них избавится - остаётся вопросом...


gdaujk   (2005-05-29 02:28:00) [11]

Вариант с LVS_EX_CHECKBOXES всё-таки получается, но у каждого checkbox'а чёрные правый, левый и нижний края. Как быть с этим?

И как узнать, что нажат Checkbox?


gdaujk   (2005-05-29 02:26:00) [12]

Вариант с LVS_EX_CHECKBOXES всё-таки получается, но у каждого checkbox'а чёрные правый, левый и нижний края. Как быть с этим?

И как узнать, что нажат Checkbox?


gdaujk   (2005-05-29 02:14:00) [13]

KilkennyCat [1]

Я так пробовал, че-то не выходит. LVS_EX_CHECKBOXES просто не оказывает никакого действия. Этот стиль случаем не конфликтует с др стилями?

Marser [2]

Чё то не приходит в голову, каким образом связаны ScrollBox и CheckBox...


Marser   (2005-05-29 01:58:00) [14]

Можно просто использовать ScrollBox в качестве контейнера для CheckBox и не заморачиваться с перерисовкой. AFAIK, готового контрола нет.


KilkennyCat   (2005-05-29 01:42:00) [15]

Может, это поможет: http://www.rsdn.ru/Forum/Message/86259.htm


Наверх

Титульная страница Поиск, карта сайта Написать письмо