Информационный портал Media Systems & Bear Corp.

Главная Новости Delphi C&C++ Tеория Графов Web-Design Математика Исходники и Проекты Лисп и Пролог Ссылки

Портал :: Программирование на С и С++
Как создать прозрачную форму под Borland С++ BUILDER  

 

Для создания "прозрачных" форм неодходимо хорошо разбираться в регионах. Поэтому если вы сейчас впервые столкнулись с этим понятием рекомендую посмотреть эту статью. Если форма прозрачна то должны быть видны только её компоненты.Наша цель - создать регион который содержит в себе объединение всей области формы которая находится под компонентами. В итоге нетрудно получить примерно такой код , полностью решающий нашу задачу:
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
HRGN FullRgn;
HRGN Rgn;
int I;
// определяем относительные координаты клиенской части
int ClientX= (Width - ClientWidth)/ 2;
int ClientY= Height - ClientHeight - ClientX;
// создаем регион для всей формы
FullRgn = CreateRectRgn(0, 0, Width, Height);
// создаем регион для клиентской части формы
// и вычитаем его из FullRgn
Rgn = CreateRectRgn(ClientX, ClientY, ClientX + ClientWidth, ClientY +ClientHeight);
CombineRgn(FullRgn, FullRgn, Rgn, RGN_DIFF);
// теперь добавляем к FullRgn регионы каждого контрольного элемента
for(I=0; I ‹ControlCount; I++ )
{ Rgn = CreateRectRgn(ClientX+Controls[I]->Left, ClientY+Controls[I]->Top,
ClientX+Controls[I]->Left + Controls[I]->ClientWidth,
ClientY+Controls[I]->Top +Controls[I]->ClientHeight);
CombineRgn(FullRgn, FullRgn, Rgn, RGN_OR);
// устанавливаем новый регион окна
}
SetWindowRgn(Form1->Handle, FullRgn, True);
}
//---------------------------------------------------------------------------

(Выборка из статьи "Прозрачные формы" d`AEON)

Скачать архив с примером

 
     
  Гостевая книга . Связь с разработчиками: Bear Corporation, Media Studio.  
  Это место для вашей рекламы  

Дизайн: Bear Corner, Inc. & Media Sudio.
Последнее обновление: 24.03.2001.

Rambler's Top100 Rambler's Top100
Hosted by uCoz