![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Transparent STATIC [D6, WinXP]
mad0max © (2005-06-15 13:27:00)А не подскажите ли уважаемы как организовать прозрачный элемент класса STATIC?
Использование exStyle WS_EX_TRANSPARENT при вызове функции
CreateWindowEx(WS_EX_TRANSPARENT, 'STATIC', 'bla-bla.....
никакого эффекта не дал :(
alpet (2005-06-16 12:57:00) [1]Где ValidateRect(Rgn)?.
WM_CTLCOLORSTATIC в данном случае куда более удобное решение, благо для этих целей и разрабатывалось. Похоже что WM_ERASEBKGND система для своего контрола сама обрабатывает, раз битмап стирается.
mad0max (2005-06-16 12:48:00) [2]to Игорь Шевченко
Пришлось убирать при создании окна создание элемента формы-битмапа и переносить его в функцию окна в качестве прорисовки, получилось что-то типа такого, на событие WM_PAINT
1. Загрузка битмапа из ресурса и прорисовка BitBlt
2. SetBkMode(hWindow, TRANSPARENT)
3. TextOut
Все получилось как надо.. но зараза проблема с прорисовкой окна...
Поначалу в окне все как надо битмап и на нем надпись.. а вот если по Alt-Tab перейти в другое окно, а потом вернуться обратно - битмапа как не бывало :), а надпись как ни странно присутствует :)
Игорь Шевченко (2005-06-16 11:05:00) [3]mad0max (16.06.05 08:09) [11]
> Победил...
Каким образом ?
mad0max (2005-06-16 08:09:00) [4]Спасибо всем кто давал советы!!!
Победил...
mad0max (2005-06-16 05:24:00) [5]to -=XP=-в виндовой функции на событие WM_PAINT
...
WM_PAINT: begin
DC := GetDC(hWindow);
OutText(DC, 10, 10, 'Колбаса', 7);
ReleaseDC(hWindow, DC);
end;
...
to alpetя ж писал :) на API мне надо - там никаких TLabel нет :)
alpet (2005-06-15 14:33:00) [6]Кстати у компонента TLabel есть такое свойство Transparent. Или требуется полупрозрачность?
-=XP=- (2005-06-15 14:21:00) [7]TextOUT не получилось
Это как это? Приведите свой код.
alpet (2005-06-15 14:21:00) [8]Если используется не TLabel, а TStaticText (STATIC короче) могу посоветывать использовать WM_CTLCOLORSTATIC, в обработчике сего сообщения достаточно вызвать SetBkMode (wParam, TRANSPARENT);
mad0max (2005-06-15 13:59:00) [9]to Игорь Шевченкоя не гуру и так понимаю что дополнительно надо что-то прорисовывать при использовании SS_OWNERDRAW
to -=XP=-попытка написать на чистом API без VCL,
DrawText не пробовал, TextOUT не получилось... :(
-=XP=- (2005-06-15 13:49:00) [10]Чем трактуется необходимость использования TStaticText?
TLabel не подходит?
Ну, или просто отрисовывать текст (DrawText) по надобности.
Игорь Шевченко (2005-06-15 13:48:00) [11]mad0max (15.06.05 13:47) [3]
Эт почему не помогло ?
mad0max (2005-06-15 13:47:00) [12]to Игорь Шевченконе помогло :(
to -=XP=-ого :(( как все сложно....
Дело осложняется тем, что на заднем плане у меня еще и bitmap :(
-=XP=- (2005-06-15 13:40:00) [13]TStaticText порожден от TWinControl'а.
Посему единственный способ сделать его "прозрачным" - наложить регион.
Игорь Шевченко (2005-06-15 13:40:00) [14]SS_OWNERDRAW не поможет в style ?