Вопрос № 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