如何设置图形填充有一个已知多边形,我想采用Windows的FillRGN来填充,但只支持线条填充,没发现怎么支持用一个图形去填充,哪位大侠知道?
有个地方可以设置,在CreatePolygonRGN(PointList,Count,FillMode)
里面的FillMode可以采用系统定义好的,是不是也可以采用自己定义的,应当如何创建一个填充实例

解决方案 »

  1.   

    应该用windowsapi函数,具体要查一下。
      

  2.   

    我查了很久,但没找到这样的API,可找不到如何创建一个填充模式的API函数
      

  3.   

    CreatePolygonRGN用以创建一个区域,其中FillRGN不能用来控制是用线条还是图形填充。function FillRgn(DC: HDC; hrgn: HRGN; hbr: HBRUSH): BOOL;
    中的hbr才是填充方式的重要控制点。比如下面一个简单的例子:var
      H: HRGN;
      HBR: HBRUSH;
    begin
      H := CreateRectRgn(50, 50 ,150, 150);  //创建一个区域,你可以使用CreatePolygonRGN创建不规则区域
      HBR := CreatePatternBrush(Image1.Picture.Bitmap.Handle); //创建一个位图画刷,其中使用了Image1中的位图,更通用的,可以调用API函数CreateBitmap等去加载位图
      FillRgn(Self.Canvas.Handle, H, HBR);  //用位图填充区域
      DeleteObject(HBR);  //销毁位图资源。
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————