you should be able to use P/Invoke to call PolyDraw, System.Drawing.Drawing2D.GraphicsPath has a PathPoints property which gives you a list of points

解决方案 »

  1.   

    用中方好吗?我看不太懂,GraphicsPath的点是类型如何如果放到polydraw里就不一样了,它们的类型不一样
      

  2.   

    用中文好吗?我看不太懂,GraphicsPath的点是类型如何如果放到polydraw里就不一样了,它们的类型不一样
      

  3.   

    GraphicsPath.PathTypes 可以设置相应的类型!
    PolyDraw(
       const POINT* lpPoints,//GraphicsPath.PathPoints
       const BYTE* lpTypes,//GraphicsPath.PathTypes 
       int nCount 
    );
      

  4.   

    GraphicsPath.PathTypes 虽然也是byte[]但值的含意跟polydraw不同且有8种,polydraw只有四种值,如果错了一个全完,怎么办???
      

  5.   

    呵呵............
    毕竟是GDI+
    Graphics::DrawPolygon
      

  6.   

    PathPoints 是PointF[],而PolyDraw是Point[],要一个点一个点的做循环转化吗?
      

  7.   

    PolyDraw(
       const POINT* lpPoints,//GraphicsPath.PathPoints
       const BYTE* lpTypes,//GraphicsPath.PathTypes 
       int nCount 
    );
    这样画不出来呀?
      

  8.   

    那也不可能画出,GraphicsPath.PathTypes 虽然也是byte[]但值的含意跟polydraw不同且有8种,polydraw只有四种值,如果错了一个全完,怎么办???
      

  9.   

    数组本来就是指针,用不用ref无所谓,关键是byte值的转化,如果全部转成直线能画一个不精确的轮廓