zoukankan      html  css  js  c++  java
  • 2个多边形,其中一个包围另一个,如何将中间的环带区域涂成红色

    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;

  • 相关阅读:
    python_day_5:20180720
    python_day_4:20180719
    2018悦读
    2018生活
    心理画
    js 策略模式
    js 单例模式
    js 模板方法模式
    C语言-数据类型
    js 观察者模式
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/2119791.html
Copyright © 2011-2022 走看看