C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
как вырезать форму
grizzli
Отправлено: 17.06.2003, 20:24


Не зарегистрирован







Не подскажите, как сделать чтобы форма приняла вид неправильного пятиугольника?
Asher
Отправлено: 17.06.2003, 20:39


Мастер участка

Группа: Модератор
Сообщений: 550



Что в TPoint P насочиняешь — то и будет
CODE

HRGN __fastcall GetReg(void)
{
 TPoint P[6];
 P[0]=Point(0, 0);
 P[1]=Point(40, 0);
 P[2]=Point(40, 10);
 P[3]=Point(Form1->Width, 10);
 P[4]=Point(Form1->Width, Form1->Height);
 P[5]=Point(0, Form1->Height);
 return CreatePolygonRgn(P, 6, WINDING);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
HRGN R=GetReg();
SetWindowRgn(Handle, R, TRUE);
}
//---------------------------------------------------------------------------
grizzli
Отправлено: 18.06.2003, 11:03


Не зарегистрирован







А не подскажите как углы закруглить?
Asher
Отправлено: 18.06.2003, 12:29


Мастер участка

Группа: Модератор
Сообщений: 550



CreateEllipticRgn + CombineRgn

P.S. Если вам алгоритм, то описываете прямоугольник с углами, выкушенными квадратами со сторонами R, потом по всем углам расставляешь окружности радиусами R, и делаешь CombineRgn с RGN_OR
P.P.S. Если готовый код, то чуть попозже



Отредактировано Asher — 18 Jun 2003, 13:39

Вернуться в Вопросы программирования в C++Builder