VisualBasic可以产生四角形以外其他形状的Form

2006-02-27 10:35:42  作者
这个问题,您一定无法想像有多轻易,您可以产生任何外形的Form,但必须借助CreateEllipticRgn及SetWindowRgn二个API,例如

PrivateDeclareFunctionCreateEllipticRgnLib"gdi32"(ByValX1AsLong,ByValY1AsLong,ByValX2AsLong,ByValY2AsLong)AsLong

PrivateDeclareFunctionSetWindowRgnLib"user32"(ByValhWndAsLong,ByValhRgnAsLong,ByValbRedrawAsBoolean)AsLong

PrivateSubForm_Load()
DimlReturnAsLong
Me.Show
lReturn=SetWindowRgn(hWnd,CreateEllipticRgn(10,10,340,150),True)
EndSub

执行结果图片

CreateEllipticRgn之四个参数说明如下
X1椭圆中心点之X轴位置,但以Form的实№边界为限。
Y1椭圆中心点之Y轴位置,但以Form的实№边界为限。
X2椭圆长边的长度
Y2椭圆短边的长度的->