No puedes imaginar lo fácil que es este problema. Puedes crear un formulario de cualquier forma, pero debes usar las dos API CreateEllipticRgn y SetWindowRgn, por ejemplo:
PRivateDeclareFunctionCreateEllipticRgnLib"gdi32"(ByValX1AsLong,ByValY1AsLong,ByValX2AsLong,ByValY2AsLong)AsLong
PrivateDeclareFunctionSetWindowRgnLib"user32"(ByValhWndAsLong,ByValhRgnAsLong,ByValbRedrawAsBoolean)AsLong
PrivadoSubForm_Load()
DimlReturnAsLong
Yo.Mostrar
lReturn=SetWindowRgn(hWnd,CreateEllipticRgn(10,10,340,150),Verdadero)
FinSub
Imagen del resultado de la ejecución
Los cuatro parámetros de CreateEllipticRgn se explican a continuación:
X1: Posición del eje X del punto central de la elipse, pero limitada al límite real de la Forma.
Y1: Posición del eje Y del punto central de la elipse, pero limitada al límite real de la Forma.
X2: La longitud del lado largo de la elipse.
Y2: La longitud del lado corto de la elipse ->