Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать окно прозрачным? / 8 сообщений из 8, страница 1 из 1
25.01.2005, 14:47
    #32882530
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
Т.е. проблема у меня такая:
Есть окно, на нём размещён компонент TRxGIFAnimation (RX). Как можно сделать это окно прозрачным, чтоб виднелось только одно изображение?
Буду благодарен за кусок кода! Пасиба :)
Среда: Borland C++ Builder5.
...
Рейтинг: 0 / 0
25.01.2005, 15:22
    #32882636
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
Код: plaintext
1.
2.
    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
    SetLayeredWindowAttributes(Handle,  0 ,  80 , LWA_ALPHA);

Вродебы можно так


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
25.01.2005, 18:22
    #32883186
Serega128
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
Только у меня ещё проблема: надо, чтоб форма была невидимой, а всё, что на ней - видимое
...
Рейтинг: 0 / 0
25.01.2005, 19:10
    #32883260
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
Обсуждалось здесь: /topic/152103&hl=%ef%f0%ee%e7%f0%e0%f7%ed%ee%e5]|>/topic/152103&hl=%ef%f0%ee%e7%f0%e0%f7%ed%ee%e5" TARGET="_blank"> тынц

А вообще можно все нивидимые части покрасить в один цвет и задать этот цвет как прозрачный. Только ессесно этот цвет не должен встречаться больше нигде на непрозрачных элементах: использовать какой-нибудь редкий цвет

________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
25.01.2005, 22:20
    #32883438
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
Тогда еще рекомендую
если так сильно хочется , заюзать регионы

 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
26.01.2005, 11:42
    #32884111
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
JibSkeartТогда еще рекомендую
если так сильно хочется , заюзать регионы

 ш
(';')
(V),(V),,
Код: plaintext
 JS 


в данном случае регионы не помогут -- форма не столько имеет слодную форму, сколько на ней контролы мешаются
...
Рейтинг: 0 / 0
26.01.2005, 13:28
    #32884550
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
Lelikk JibSkeartТогда еще рекомендую
если так сильно хочется , заюзать регионы

 ш
(';')
(V),(V),,
Код: plaintext
 JS 


в данном случае регионы не помогут -- форма не столько имеет слодную форму, сколько на ней контролы мешаются


Но это не ешает нам не "затирать" контролы .
тоесть мы можем сотавить просто рамочку , и контролы
а все остальное будет прозрачно .
...
Рейтинг: 0 / 0
26.01.2005, 13:33
    #32884573
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать окно прозрачным?
например это можно сделать вот так :


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Void __fastcall SetRGN(void) 
{
   HRGN All, TempRgn;
   int W =  0  ,H =  0 ;
   W = Form1->Width;
   H =  Form1->Height; 
   All = CreateRectRgn( 0 ,  0 , W, H);

   TempRgn = CreateRectRgn( 0 ,  0 , W, H);
   CombineRgn(All, All, TempRgn, RGN_DIFF);

   for (int i =  0 ; i < Form1->ControlCount; i++)
   {
      if (Form1->Controls[i]->Visible)
     {
       TempRgn = CreateRectRgn(Form1->Controls[i]->Left,
       Form1->Controls[i]->Top,
       Form1->Controls[i]->Left + Form1->Controls[i]->Width,
       Form1->Controls[i]->Top + Form1->Controls[i]->Height);
       CombineRgn(All, All, TempRgn, RGN_OR);
     }
   }

   SetWindowRgn(Form1->Handle, All, true);
}



 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сделать окно прозрачным? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]