Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сменить цвет фонта ? [D6, WinXP]


Vemer ©   (2007-02-07 23:24:00) 

Создаю подобие TLabel (крестик "Закрыть").

hFont := CreateFont(
-16, 0, 0, 0, 0, 0, 0, 0,
SYMBOL_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH or FF_DONTCARE, 'Marlett');

Lb_Close :=CreateWindow(
'Static',
'r',
WS_CHILD or SS_Center or SS_NOTIFY or WS_VISIBLE or SS_WHITERECT,
51,25,21,17,Handle, id_44, hInst,nil);
SendMessage(Lb_Close,WM_SETFONT,hFont,0);


Вопрос - как изменить цвет фонта?


capkoh   (2007-02-08 23:09:00) [1]

> Anatoly Podgoretsky ©   (08.02.07 19:36) [5]

Я привел это, хм... выражение как пример того, что именно можно писать на месте COLORREF, если цвет задавать константой в HEX. Т.е. голубой будет $FF0000, а никак не $0000FF (красный). Другое дело, если формировать цвет функцией RGB(r, g, b), куда переменные передаются в "естественном" порядке...


Anatoly Podgoretsky   (2007-02-08 19:36:00) [2]

> capkoh  (08.02.2007 11:36:03)  [3]

> а также то, что цвет задается в формате $BBGGRR

Это смотря как интерпритировать, ты интерпритируешь как Integer, а другие как набор байт, тогда RR, GG, BB


clickmaker   (2007-02-08 16:12:00) [3]


> Vemer ©   (07.02.07 23:24)

добавить окну, которое Handle, обработчик WM_CTLCOLORSTATIC, в нем SetTextColor(wParam, $FF), если lParam = Lb_Close


capkoh   (2007-02-08 11:36:00) [4]

Все работает. Только TextOut() какой-то странный... Там еще координаты нужно передавать и длину текста. Не забываем делать ReleaseDC(), а также то, что цвет задается в формате $BBGGRR, если не создается функцией RGB().


Vemer   (2007-02-08 02:09:00) [5]

Пробовал, не пашет.

Пробовал так:
MyDC := GetDC(Lb_Close);
SetTextColor(MyDC,$FF);
TextOut(MyDC,'r');


DevilDevil   (2007-02-08 01:14:00) [6]

SetTextColor ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо