Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

Transparent STATIC   Найти похожие ветки 

 
mad0max   (2005-06-15 13:27) [0]

А не подскажите ли уважаемы как организовать прозрачный элемент класса STATIC?

Использование exStyle WS_EX_TRANSPARENT при вызове функции

CreateWindowEx(WS_EX_TRANSPARENT, "STATIC", "bla-bla.....

никакого эффекта не дал :(


 
-=XP=- ©   (2005-06-15 13:40) [1]

TStaticText порожден от TWinControl"а.
Посему единственный способ сделать его "прозрачным" - наложить регион.


 
Игорь Шевченко ©   (2005-06-15 13:40) [2]

SS_OWNERDRAW не поможет в style ?


 
mad0max   (2005-06-15 13:47) [3]

to Игорь Шевченко не помогло :(

to -=XP=- ого :(( как все сложно....

Дело осложняется тем, что на заднем плане у меня еще и bitmap :(


 
Игорь Шевченко ©   (2005-06-15 13:48) [4]

mad0max   (15.06.05 13:47) [3]

Эт почему не помогло ?


 
-=XP=- ©   (2005-06-15 13:49) [5]

Чем трактуется необходимость использования TStaticText?
TLabel не подходит?
Ну, или просто отрисовывать текст (DrawText) по надобности.


 
mad0max   (2005-06-15 13:59) [6]

to Игорь Шевченко я не гуру и так понимаю что дополнительно надо что-то прорисовывать при использовании SS_OWNERDRAW

to -=XP=- попытка написать на чистом API без VCL,
DrawText не пробовал, TextOUT не получилось... :(


 
-=XP=- ©   (2005-06-15 14:21) [7]

TextOUT не получилось

Это как это? Приведите свой код.


 
alpet ©   (2005-06-15 14:21) [8]

Если используется не TLabel, а TStaticText (STATIC короче) могу посоветывать использовать WM_CTLCOLORSTATIC, в обработчике сего сообщения достаточно вызвать SetBkMode (wParam, TRANSPARENT);


 
alpet ©   (2005-06-15 14:33) [9]

Кстати у компонента  TLabel есть такое свойство Transparent. Или требуется полупрозрачность?


 
mad0max   (2005-06-16 05:24) [10]

to -=XP=- в виндовой функции на событие WM_PAINT

...
WM_PAINT: begin
              DC := GetDC(hWindow);
              OutText(DC, 10, 10, "Колбаса", 7);
              ReleaseDC(hWindow, DC);
         end;
...              

to alpet я ж писал :) на API мне надо - там никаких TLabel нет :)


 
mad0max   (2005-06-16 08:09) [11]

Спасибо всем кто давал советы!!!
Победил...


 
Игорь Шевченко ©   (2005-06-16 11:05) [12]

mad0max   (16.06.05 08:09) [11]


> Победил...


Каким образом ?


 
mad0max   (2005-06-16 12:48) [13]

to Игорь Шевченко

Пришлось убирать при создании окна создание элемента формы-битмапа и переносить его в функцию окна в качестве прорисовки, получилось что-то типа такого, на событие WM_PAINT

1. Загрузка битмапа из ресурса и прорисовка BitBlt
2. SetBkMode(hWindow, TRANSPARENT)
3. TextOut

Все получилось как надо.. но зараза проблема с прорисовкой окна...
Поначалу в окне все как надо битмап и на нем надпись.. а вот если по Alt-Tab перейти в другое окно, а потом вернуться обратно - битмапа как не бывало :), а надпись как ни странно присутствует :)


 
alpet ©   (2005-06-16 12:57) [14]

Где ValidateRect(Rgn)?.

WM_CTLCOLORSTATIC в данном случае куда более удобное решение, благо для этих целей и разрабатывалось. Похоже что WM_ERASEBKGND система для своего контрола сама обрабатывает, раз битмап стирается.



Страницы: 1 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.043 c
4-1118681911
Expl
2005-06-13 20:58
2005.08.14
Вопрос по активности окон


14-1122308065
Agent13
2005-07-25 20:14
2005.08.14
Spamers must die!


3-1120591292
redlord
2005-07-05 23:21
2005.08.14
где взять SQLClientDataSet


4-1118339471
Spectre_s
2005-06-09 21:51
2005.08.14
Создание пользователя Windows через Delphi


14-1121937646
Дмитрий_Б
2005-07-21 13:20
2005.08.14
Не открываются архивы старых форумов