'下面代码复制到模块DeclareFunctionFindWindow_Lib"user32"Alias"FindWindowA"_(ByVallpClassNameAsString,_ByVallpWindowNameAsString)_AsLongDeclareFunctionGetDCLib"user32"_(ByValhwndAsLong)AsLongDeclareFunctionArcLib"gdi32"_(ByValhdcAsLong,ByValX1AsLong,_ByValY1AsLong,ByValX2AsLong,_ByValY2AsLong,ByValX3AsLong,_ByValY3AsLong,ByValX4AsLong,_ByValY4AsLong)AsLongDeclareFunctionMoveToExLib"gdi32"_(ByValhdcAsLong,ByValxAsLong,_ByValyAsLong,lpPointAsPOINTAPI)oLib"gdi32"_(ByValhdcAsLong,ByValxAsLong,_ByValyAsLong)AsLongDeclareFunctionCancelDCLib"gdi32"_(ByValhdcAsLong)AsLongTypePOINTAPIAsLongAsLongEndType'Arc参数类型及说明'hdcLong,一个显示场景的句柄'X1,Y1Long,指定围绕椭圆的一个矩形的左上角位置'X2,Y2Long,指定围绕椭圆的一个矩形的右下角位置'X3,Y3Long,指定圆弧起点'X4,Y4Long,指定圆弧终点'mand1_Click()DimhwndAsLongDimhdcAsLongDimptAsPOINTAPIDimp0(0To1)'圆0圆心坐标Dimp1(0To1)'圆1圆心坐标Dimp3(0To1)'切线切点0坐标Dimp4(0To1)'切线切点1坐标Dimp5(0To7)'圆0坐标Dimp6(0To7)'圆1坐标Dimd0'圆0直径Dimd1'圆1直径Dims0AsDouble'圆心距离Dimdx,dy,drDimsin1AsDouble'切点半径斜角正弦值Dimcos1AsDouble'切点半径斜角余弦值p0(0)=100:p0(1)=200p1(0)=200:p1(1)=200d0=50d1=80dx=p1(0)-p0(0)dy=p1(1)-p0(1)dr=(d1-d0)/2s0=Sqr(dx^2+dy^2)cos1=dx*dr/s0^2-dy*Sqr(1-(dr/s0)^2)/s0sin1=Sqr(1-(cos1)^2)p3(0)=p0(0)-d0/2*cos1p3(1)=p0(1)-d0/2*sin1p4(0)=p1(0)-d1/2*cos1p4(1)=p1(1)-d1/2*sin1p5(0)=p0(0)-d0/2p5(1)=p0(1)-d0/2p5(2)=p0(0)+d0/2p5(3)=p0(1)+d0/2p5(4)=p0(0)-d0/2p5(5)=p0(1)-d0/2p5(6)=p0(0)-d0/2p5(7)=p0(1)-d0/2p6(0)=p1(0)-d1/2p6(1)=p1(1)-d1/2p6(2)=p1(0)+d1/2p6(3)=p1
VBA窗体画图 来自淘豆网m.daumloan.com转载请标明出处.