2个多边形,其中一个包围另一个,如何将中间的环带区域涂成红色

减小字体 增大字体 作者:佚名  来源:转载  发布时间:2011-08-04 21:45:42

本文来自:http://www.cnblogs.com/zhangzhifeng/archive/2011/07/28/2119791.html

1.  画两次不就可以了。。第一次画大的,第二画小的。。

procedure   TForm1.Button1Click(Sender:   TObject);   
    
  begin   
        with   Canvas   do   
        begin   
            Rectangle(100,100,300,300);   
            Rectangle(150,150,250,250);   
            Brush.Color   :=   clRed;   
            FillRect(rect(150,150,250,250));   
        end;   
  end;

2.先创建出HRGH的区域,再用CombineRgn获取环带的区域,之后填充:   
    
  var   a,   b,   c:   HRGN;   
          hbr:   HBRUSH;   
  begin   
      //     Canvas.Rectangle(100,200,400,400);   
      //     Canvas.RoundRect(120,220,300,350,100,100);   
      hbr   :=   CreateSolidBrush(clRed);   
      a:=CreateRectRgn(100,200,400,400);   
      b:=CreateRoundRectRgn(120,220,300,350,100,100);   
      c:=CreateRectRgn(0,0,1,1);   
      CombineRgn(c,   a,   b,   RGN_DIFF);   
      FillRgn(Canvas.Handle,c,   hbr);   
  end;

Tags:

作者:佚名
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论