Как изменить цвет текста на кнопке? Стандартной. - VB
Формулировка задачи:
Проблема в чем:
Сделал как здесь:
Как облагородить кнопку которая поверх картинки?
Наложил кнопку поверх картинки.
Ну научился картинки на кнопке рисовать:
Обошел даже глюк на XP теме (кнопка превращается в классику при попытке сделать Or BS_ICON):
Дальше сделал кнопки прозрачными(работает только на 7-ке, воруется стиль 7-рочной кнопки "Свернуть все окна")
Выглядит здорово, но шрифт текста черный - хотелось бы белый или поиграться. (На фоне темной картинки буков почти не видно).
==================
Что пробовал:
1) Вклиниться в процедуру которой подрисовываю background
т.е. пытался воткнуть туда
SetTextColor wParam, RGB(X, Y, Z)
-не получилось
2) Пытался опять же из CUSTOMDRAW
Но это увы не listview, где можно строчки раскрасить
3) Пытался там же рисовать этот текст на hdc
Не рисует текст вообще.
Все примеры VB6 что находил используют стиль кнопки Graphical -это порнушка.
В "Калькулятор" цвет надписей как-то изменен. Судя по тому, что цифры на классике не прыгают при нажатии (на классике должны), рисуется на hdc.
Могу конечно вставить иконки с текстом Or BS_ICON либо рисовкой на hdc кнопки, но это накладно и цвет оперативно менять нельзя (не для всех же цветов/кнопок надписи на иконках делать).
Сделал как здесь:
Как облагородить кнопку которая поверх картинки?
Наложил кнопку поверх картинки.
Ну научился картинки на кнопке рисовать:
Обошел даже глюк на XP теме (кнопка превращается в классику при попытке сделать Or BS_ICON):
Дальше сделал кнопки прозрачными(работает только на 7-ке, воруется стиль 7-рочной кнопки "Свернуть все окна")
Выглядит здорово, но шрифт текста черный - хотелось бы белый или поиграться. (На фоне темной картинки буков почти не видно).
==================
Что пробовал:
1) Вклиниться в процедуру которой подрисовываю background
т.е. пытался воткнуть туда
SetTextColor wParam, RGB(X, Y, Z)
-не получилось
2) Пытался опять же из CUSTOMDRAW
Но это увы не listview, где можно строчки раскрасить
3) Пытался там же рисовать этот текст на hdc
Не рисует текст вообще.
Все примеры VB6 что находил используют стиль кнопки Graphical -это порнушка.
В "Калькулятор" цвет надписей как-то изменен. Судя по тому, что цифры на классике не прыгают при нажатии (на классике должны), рисуется на hdc.
Могу конечно вставить иконки с текстом Or BS_ICON либо рисовкой на hdc кнопки, но это накладно и цвет оперативно менять нельзя (не для всех же цветов/кнопок надписи на иконках делать).
Решение задачи: «Как изменить цвет текста на кнопке? Стандартной.»
textual
Листинг программы
Private Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" _ (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, _ ByVal lpString As String, ByVal nCount As Long) As Long Case WM_NOTIFY Static lvcd As NMLVCUSTOMDRAW MoveMemory lvcd, ByVal lParam, Len(lvcd) ' every structs' member is a Long Select Case lvcd.nmcd.hdr.code Case NM_CUSTOMDRAW ... CDDS_PREPAINT Dim sPrintText As String sPrintText = "Print this text" SetBkMode wParam, TRANSPARENT SetTextColor lvcd.nmcd.hdc, vbBlue TextOut lvcd.nmcd.hdc, 0, 0, sPrintText, Len(sPrintText)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д