Tworzenie formularza w kształcie elipsy

Aby utworzyć formularz w kształcie elipsy wywołujemy funkcję Windows API CreateEllipticRgn(), która zwraca uchwyt do obszaru o kształcie elispy, argumenty podawane do funkcji to kolejeno: współrzędna x lewej krawędzi formularza, współrzędna y górnej krawędzi formularza, współrzędna x prawej krawędzi formularza, współrzędna y dolnej krawędzi formularza, następnie wywołujemy kolejną funkcję Windows API SetWindowRgn(), która określa widoczny obszar formularza (w naszym przypadku obszar ten ma kształt elipsy), podając jako argumenty uchwyt do formularza, którego kształt zmieniamy, uchwyt do obszaru, i wartość logiczną, która określa czy po zmianie obszaru formularza system oświeży go (zazwyczaj ustawiona na true), obszar formularza możemu zmienić np. podczas jego tworzenia (równie dobrze można i gdzie indziej):

Unit1.cpp

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   HRGN MyRgn;
   MyRgn = CreateEllipticRgn(0, 0, ClientRect.Right, ClientRect.Bottom);
   SetWindowRgn(Handle, MyRgn, true);
}