[DllImport("gdi32.Dll")]
public static extern int CreateRoundRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidthEllipse, int nHeightEllipse); 祝好运!
public static extern int CreateRoundRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidthEllipse, int nHeightEllipse); 祝好运!
{
int iMin;
iMin = this.Height;
if(this.Width<this.Height)
iMin = this.Width; int iDia = iMin/6;
if(iDia<6)iDia=6;
GraphicsPath objGP=new GraphicsPath();
objGP.AddArc(objDrawRect.Left,objDrawRect.Top,iDia,iDia,-180,90);
//objGP.AddLine(objDrawRect.Left+iDia/2,objDrawRect.Top,objDrawRect.Right-iDia/2,objDrawRect.Top);
objGP.AddArc(objDrawRect.Right-iDia,objDrawRect.Top,iDia,iDia,-90,90);
objGP.AddLine(objDrawRect.Right,objDrawRect.Top+iDia/2,objDrawRect.Right,objDrawRect.Bottom-iDia/2);
objGP.AddArc(objDrawRect.Right-iDia,objDrawRect.Bottom-iDia,iDia,iDia,0,90);
objGP.AddLine(objDrawRect.Right-iDia/2,objDrawRect.Bottom,objDrawRect.Left+iDia/2,objDrawRect.Bottom);
objGP.AddArc(objDrawRect.Left,objDrawRect.Bottom-iDia,iDia,iDia,90,90);
objGP.AddLine(objDrawRect.Left,objDrawRect.Bottom-iDia/2,objDrawRect.Left,objDrawRect.Top+iDia/2);
return objGP;
}
有了GraphicPath,随便怎么画都可以了 :)