![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание 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