Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 347
от 26.11.2006, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 392, Экспертов: 28
В номере:Вопросов: 1, Ответов: 3


Вопрос № 63576: Здравствуйте уважаемые эксперты. Подскажите пожалуйста, как поменять цвет текста на BUTTON-е. И возможно ли это вообще? Если возможно, то какие функции для этого нужны и как их использовать! В НЕТЕ шарился, ничего конкретного не нашел. Ес...

Вопрос № 63.576
Здравствуйте уважаемые эксперты.
Подскажите пожалуйста, как поменять цвет текста на BUTTON-е. И возможно ли это вообще?
Если возможно, то какие функции для этого нужны и как их использовать!
В НЕТЕ шарился, ничего конкретного не нашел. Если можно, с примерчиком!
Заранее СПАСИБО!!!
Отправлен: 21.11.2006, 17:19
Вопрос задал: Gibson (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Tek
Здравствуйте, Gibson!
Обрабатывайте событие WM_CTLCOLORBTN
В обработчике используйте ф-цию
SetTextColor(HDC, COLORREF)
HDC - это параметр wParam события WM_CTLCOLORBTN
COLORREF можно формировать например макросом RGB(red, green, blue)
где red, green, blue - соответсвенно интенсивности составляющих базовых цветов
---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 2-ой класс)
Ответ отправлен: 21.11.2006, 17:36

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Gibson!
Увы, WM_CTLCOLORBTN не работает!
Читаем MSDN:
By default, the DefWindowProc function selects the default system colors for the button. Buttons with the BS_PUSHBUTTON, BS_DEFPUSHBUTTON, or BS_PUSHLIKE styles do not use the returned brush. Buttons with these styles are always drawn with the default system colors. Drawing push buttons requires several different brushes-face, highlight and shadow-but the WM_CTLCOLORBTN message allows only one brush to be returned. To provide a custom appearance for push buttons, use an owner-drawn button
Чтобы красить текст на кнопке, придется самому рисовать кнопку, используя стиль BS_OWNERDRAW
Смотри пример.
Используя поля структуры DRAWITEMSTRUCT, можно отрисовывать самые разные состояния.

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 21.11.2006, 19:38

Отвечает: John Paramol
Здравствуйте, Gibson!
Вот здесь пример именно для стиля XP.
http://www.loopwise.com/looksurf/uploads/john_paramol_1164136490.rar
Основано на субклассировании оконной функции.
Не судите строго, недоработок много, но главное - идея.
Удачи!
Ответ отправил: John Paramol (статус: 3-ий класс)
Ответ отправлен: 21.11.2006, 22:15


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное