| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Приделать свойство Flat обычной кнопке Button |
| Автор: Нитонисе 4.4.2013, 21:52 |
| Есть кнопки Button, на них можно отображать картинки *.ico, но нет свойства Flat. Есть кнопки SpeedButton, у них есть свойство Flat, но картинки только в формате *.bmp. У меня есть набор иконок для кнопок в формате *.ico, если их конвертировать в *.bmp - теряется качество. Поэтому хочу использовать их в родном формате, но и хочу свойство Flat кнопкам. Можно ли как-то прикрутить свойство Flat к Button, или возможность отображения форматов *.ico к SpeedButton? |
| Автор: artsb 4.4.2013, 22:35 |
| Есть такой стиль - http://msdn.microsoft.com/en-us/library/windows/desktop/bb775951(v=vs.85).aspx. Вот ещё http://stackoverflow.com/questions/6295720/how-to-create-a-flat-button-in-winapi-with-visual-style. Ну и ничего не мешает изобрести свой велосипед |
| Автор: Нитонисе 4.4.2013, 23:01 |
| Тулбар с одной кнопкой это интересно |
| Автор: artsb 4.4.2013, 23:50 | ||
http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms633591%28v=vs.85%29.aspx + GWL_STYLE. Например, в конструкторе формы:
|
| Автор: _Dimon_ 6.4.2013, 00:45 |
| Нитонисе, а в каком билдере работаешь? Если > 2009 то можно использовать *.png (думаю при конвертации качество картинки не потеряешь) И TImageList никто не отменял, он поддерживает *.ico, а к TSpeedButton можно прикрутить TImageList |
| Автор: Нитонисе 6.4.2013, 22:37 |
| artsb, ваш код задания стиля кнопок BS_FLAT не срабатывает. У меня Builder XE, но SpeedButton в свойстве Glyph хочет изображение с расширением *.bmp. И TImageList к этим кнопкам не прикручивается. По крайней мере стандартными средствами. |
| Автор: Avazart 6.4.2013, 23:13 | ||
Не подойдет ? |
| Автор: Нитонисе 7.4.2013, 00:18 |
Хм, может быть и подойдет. Что-то я раньше не видел, что у кнопок есть стиль. Есть правда один недостаток - положение картинки фиксировано, всегда слева. Но впринципе можно ширину кнопки такую подобрать, чтобы картинка находилась посередине. Уж коль пошла речь о стилях кнопок, то для чего нужен стиль bsSplitButton? Стрелочка на кнопке появляется, как будто что-то раскрываться должно типа комбобокса, но ничего такого нет... И еще один вопрос попутно - зачем у кнопок свойство Font? Пытался изменить цвет шрифта - не меняется. |
| Автор: _Dimon_ 7.4.2013, 01:15 | ||
Действительно, просто перепутал с альфовскими TsSpeedButton, там можно. |
| Автор: artsb 7.4.2013, 14:41 | ||
Кривизна реализации в Билдере. Плюс, если включены стили, то используется шрифт, которые указан в стиле, ЕМНИП. Попробуйте поменять шрифт средствами WinAPI. На счёт плоской кнопки: почему бы просто не воспользоваться TImage? |
| Автор: Нитонисе 7.4.2013, 15:02 | ||
Так надо программировать поведение как у кнопки со свойством Flat. Вообще я все же использовал конвертированные картинки *.bmp и SpeedButton. Впринципе сойдет.
Выравнивание задается для стиля bsPushButton. И свойство Margin тоже работает только с этим стилем. |