Formulario redondo
SET LIBRARY TO SYS(2004)+"foxtools.fll" ADDITIVE
fcnVentanaActiva = regfn("GetActiveWindow","","I") && Función para encontrar el Handle de la ventana activa
*En este caso es la ventana principal de VFP
*Pueden utilizar "FindWindow" para obtener el handle de la ventana que uds quieran
fcnRgnEliptica = regfn("CreateEllipticRgn","IIII","I") && función para crear la region elíptica
fcnColocaRegion = regfn("SetWindowRgn","III","I") && Función para colocar la región en la ventana con el handle obtenido
hWndActiva = Callfn(fcnVentanActiva) &&Obtenemos el handle de la ventana activa
IF hWndActiva <> 0 THEN && Si se encontró el handle
mRGN = callfn(FcnRgnEliptica,0,0,THISFORM.WIDTH,THISFORM.HEIGHT) &&Generamos la región
*Pueden modificar los parámetros para colocar la región donde uds quieran y hacerla más o menos ancha
IF mRGN <> 0 THEN && Si se creó la región
mSalida = callfn(fcnColocaRegion,hWndActiva,mRGN,1) &&Colocamos la región en la ventana de la
* que obtuvimos en handle
IF mSalida <> 0 then
WAIT WIND "FUNCIÓN EXITOSA"
ENDIF
ENDIF
ENDIF
Function GetHwndForm
LParameter toForm
Local lcCaption
lcCaption = toForm.Caption
toForm.Caption = Sys(3)
If not "FOXTOOLS" $ Upper( Set("Library") )
Set Library to (Home()+"\FoxTools.Fll") Additive
Endif
Local lnHWND
lnHWND = _WhToHwnd( _WFindTitl(toForm.Caption) )
toForm.Caption = m.lcCaption
Return m.lnHWND