RT,谢谢大家!

解决方案 »

  1.   

    HRGN你知道吗?个你些api函数,通过这些东西就可以
    CombineRgn
    CreateEllipticRgn
    CreateEllipticRgnIndirect
    CreatePolygonRgn
    CreatePolyPolygonRgn
    CreateRectRgn
    CreateRectRgnIndirect
    CreateRoundRectRgn
    EqualRgn
    ExtCreateRegion
    FillRgn
    FrameRgn
    GetPolyFillMode
    GetRegionData
    GetRgnBox
    InvertRgn
    OffsetRgn
    PaintRgn
    PtInRegion
    RectInRegion
    SetPolyFillMode 
      

  2.   

    Maybe Can use Canvas.Pie
      

  3.   

    例子我也没有我跟你简单说一下吧,rgn是一种区域,CreateEllipticRgn创建椭圆区域,CreatePolygonRgn创建多边形区域,CreateRoundRectRgn创建矩形的内切圆或椭圆
    CombineRgn 可以对两个区域进行 并,与,减等操作FillRgn可以在区域里填充颜色你可以先建一个圆rgn1通过CombineRgn把它割去一块rgn2,然后建一个三角rgn3,在把rgn3和rgn2合并起来就一个扇形,再用fillrgn填上颜色就可以了
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     x, y : Integer;
     angle : Double;
     i : Integer;
    begin
     angle := 60/90*pi/2 / 160;
     Canvas.Brush.Color := clRed;
     Canvas.Pie(-512, -512, 512, 512, Round(512 * cos(angle * 160)),
       Round(512 * sin(angle * 160)), 0, 0);
     for i := 1 to 160 do
     begin
       y := Round(512 * sin(angle * i));
       x := Round(512 * cos(angle * i));
       Canvas.MoveTo(0, 0);
       Canvas.LineTo(x, y);
     end;
    end;
      

  5.   

    Delphi的Demo\propEdit下有个画扇形的控件