![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Прозрачный фон у Static Text. [D6, Win95/98]
_sMile © (2003-01-09 15:09:00)Как сделать прозрачный фон у элемента управления Static Text (обычная надпись), если же это невозможно, то как изменить цвет фона у этого элемента? Заранее благодарен.
Игорь Шевченко (2003-01-09 17:58:00) [1]Тоже вариант :-)
_sMile (2003-01-09 17:51:00) [2]Надо вот так:
if Msg = WM_CTLCOLORSTATIC then
begin
SetBkMode(wParam, TRANSPARENT);
Result := CreateSolidBrush(Rgb(127, 127, 127));
end;
wParam - Это HDC прорисовываемого элемента.
Игорь Шевченко (2003-01-09 17:21:00) [3]_sMile (09.01.03 16:59)
Это и есть фон, очевидно :-)
Создай Static со стилем SS_OWNERDRAW и рисуй там как угодно :-)
_sMile (2003-01-09 16:59:00) [4]Что то не совсем работает :( В надписи нужным цветом закрашиваются только те места, в которых не текста.
Игорь Шевченко (2003-01-09 16:39:00) [5]Msg.Result := hMyBrush
Axis_of_Evil (2003-01-09 16:26:00) [6]procedure WMCTLCOLORSTATIC(MSg: TMsg) message WM_CTLCOLORSTATIC;
и где-то в TMsg чего-нибудь := hMyBrush; ... я полагаю
2Игорь Шевченко
А где чему делать := hMyBrush;
PS hMyBrush: hBrush;
_sMile (2003-01-09 16:25:00) [7]Спасибо, сам разобрался.
Вот кусок кода, если кому надо(для белого фона элемента):
WM_CTLCOLORSTATIC:
Result := CreateSolidBrush(Rgb(255, 255, 255));
_sMile (2003-01-09 16:03:00) [8]Тогда возникает другой вопрос: А как возвращать что-либо в ответ на сообщение?
Игорь Шевченко (2003-01-09 15:41:00) [9]Цвет фона изменяется, путем возврата хэндла кисти в ответ на сообщение WM_CTLCOLORSTATIC