Как изменить цвет текста на кнопке?

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

Как изменить цвет текста на кнопке?

Сообщение MVG » 08.11.2004 (Пн) 13:28

Как изменить цвет текста на кнопке?

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 08.11.2004 (Пн) 14:48

А зачем? Т.е. возможностей сделать это много, ответ на данную подзадачу сильно зависит от надзадачи - ведь не ради же светлой идеи это нужно сделать.
Листинги не горят!

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 08.11.2004 (Пн) 15:11

Причин для этого может быть столько-же сколько и прграмм на свете. Хотелось бы узнать хотя бы один из известных Вам множества способов :lol:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 08.11.2004 (Пн) 15:11

Много выкурил, Faust? :lol:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2004 (Пн) 15:15

MVG писал(а):Причин для этого может быть столько-же сколько и прграмм на свете. Хотелось бы узнать хотя бы один из известных Вам множества способов :lol:

Ну, первое что приходит на ум - использовать вместо него PictureBox, а в нём - рисовать рамку и текст чем хочешь, например DrawEdge.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.11.2004 (Пн) 15:26

Не, всё-таки оставить кнопку, но кастомно отрисовывать. BS_OWNERDRAW нам зачем даден? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 08.11.2004 (Пн) 15:27

Можно ли всё-таки изменить цвет ТЕКСТА НА КНОПКЕ написанного в свойстве Caption без использования PictureBox-а ?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2004 (Пн) 15:35

MVG писал(а):Можно ли всё-таки изменить цвет ТЕКСТА НА КНОПКЕ написанного в свойстве Caption без использования PictureBox-а ?
Да, и GSerg сказал как :-)

Видишь, у тебя уже два способа есть :-)
Изображение

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 08.11.2004 (Пн) 15:39

Да, я выкурил много!!! :twisted: Внемлите, дети мои:
1. Юзай API для изменения боевой раскраски окон, ежели считаешь, что прога твоя невинна аки голубка и успеет вернуть их на дефолты перед тем, как отправится к алголовским праотцам.
2. Напиши свой контрол. Путь этот таит на себе немало опасностей, но блажен прошедший его. И не искушайся халявными контролами выложенными на сайтах!
3. Свойство Style таит в себе значение Graphical. Посему, порождая в рантайме изображения, ты способен придать надписи изощреннейщую заливку.
4. В конце концов, что есть окружающий нас мир? Всего лишь показания датчиков. Проповедуя, могу ли я быть уверенным в том, что слушатели мои реальны? Так и пользователь не может знать, истинная ли надпись на кнопке или ложь, начертанная поверх неё графическими API прямо на экране.
Эдак, пока я тут флейм готовил, там уже и вопрос решили. :cry:
Листинги не горят!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2004 (Пн) 15:51

1. И все проги, запущенные во время первой, также перекрасятся.
Кроме того, так нельзя раскрасить разные кнопки в разные цвета.
Ну, и с темами XP наверняка будет конфликтовать.

2. Нужную кнопку легко сделать из моего лейбла: http://vbrussian.com/Controls.asp?ID=100

3. Здесь имхо геморроя больше, чем с одним PictureBox-ом, который здесь всё равно придётся задействовать для генерации изображения.

4. Не канает - всё равно придётся сабклассить кнопку, а там через BS_OWNERDRAW всё делается легче даже без "поверх неё".
Изображение

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 08.11.2004 (Пн) 16:02

Вообще-то, этот список извращений - результат моего праведного гнева, вызванного фразой "много выкурил?" (я не курю). Тем не менее, я считал все варианты рабочими.
1. Ну, эти ограничения я и сам видел, но в некоторых случаях это - действительно самый простой вариант.
2. Повторяю: Не искушайся!
3. Ежели юзать PictureBox, то придется выполнять код в обработке событий MouseUp / MouseDown, а я рекомендовал нарисовать надпись в Form_Load, после чего все сводится к стандартному ходу программы.
4. Поясните, почему "не канает". Если что-то рисовать на DC экрана, то зачем сабклассить кнопку?
Листинги не горят!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.11.2004 (Пн) 23:11

4. Если окно таскается, то надпись надо перерисовывать. Или ты её по таймеру отрисовывать будешь? :-)
Изображение

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 08.11.2004 (Пн) 23:28

А что, с таймером - это идея! :lol: А если серьезно - согласен, протупил. Заканчиваю флеймить.
Листинги не горят!

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 09.11.2004 (Вт) 10:23

Все гораздо проще.
Используй вместо Command Button - CheckBox со свойстом Style = 1.
Он будет выглядить один в один, как Command Button.
И ты сможешь изменить цвет текста , BackColor и проч. свойства.

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 11.11.2004 (Чт) 18:36

Дык там черный квадрат появляется... :roll:

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 11.11.2004 (Чт) 18:58

Где?

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 11.11.2004 (Чт) 22:06

На CheckBox'е (если фокус на нем)

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 12.11.2004 (Пт) 11:02

Да все нормально, там
Обычная рамка фокуса
Вот пример
Вложения
hlp.rar
Пример цветной надписи на ChekBox
(1.03 Кб) Скачиваний: 60

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.11.2004 (Пт) 22:51

Я понимаю :) Просто этой рамки на кнопке нет :)
Я с тобой согласен, тоже вариант - я в свое время до него не додумался и юзал BS_OWNERDRAW :)

MVG
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 28.04.2004 (Ср) 15:07
Откуда: Одесса

Сообщение MVG » 24.11.2004 (Ср) 12:04

Нашёл в Компонентах компонент Gold Button. Меняет цвет текста на кнопке именно так как хотел.


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 23

    TopList