zoukankan      html  css  js  c++  java
  • GdiPlus[30]: IGPPen: 线帽


    StartCap 和 EndCap 属性分别用来读写两段的线帽, 测试图:



    StartCap 和 EndCap 测试代码:

    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    const
      CapArr: array[0..8] of Byte = (0, 1, 2, 3, $10, $11, $12, $13, $14);
    var
      Graphics: IGPGraphics;
      Pen: IGPPen;
      Pt1,Pt2: TGPPoint;
      i: Integer;
    begin
      Pt1.Initialize(20, 20);
      Pt2.Initialize(200, 20);
      Graphics := TGPGraphics.Create(Handle);
      Pen := TGPPen.Create($FF2E8B57, 11);
    
      for i := 0 to Length(CapArr) - 1 do
      begin
        Pen.StartCap := TGPLineCap(CapArr[i]);
        Pen.EndCap := Pen.StartCap;
        Graphics.DrawLine(Pen, Pt1, Pt2);
        Graphics.TranslateTransform(0, Pt1.Y * 1.5);
      end;
    end;
    

    DashCap 属性用来读写虚线线帽, 这在实线中没有效果; 测试图:



    DashCap 测试代码:

    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Pen: IGPPen;
      Pt1,Pt2: TGPPoint;
    begin
      Pt1.Initialize(20, 20);
      Pt2.Initialize(240, 20);
      Graphics := TGPGraphics.Create(Handle);
      Pen := TGPPen.Create($FF4169E1, 11);
      Pen.DashStyle := DashStyleDashDot;
    
      Pen.DashCap := DashCapFlat;
      Graphics.DrawLine(Pen, Pt1, Pt2);
      Graphics.TranslateTransform(0, Pt1.Y * 1.5);
    
      Pen.DashCap := DashCapRound;
      Graphics.DrawLine(Pen, Pt1, Pt2);
      Graphics.TranslateTransform(0, Pt1.Y * 1.5);
    
      Pen.DashCap := DashCapTriangle;
      Graphics.DrawLine(Pen, Pt1, Pt2);
    end;
    

    可通过 SetLineCap 方法一起设定 StartCap、EndCap、DashCap, 测试图:



    SetLineCap 测试代码:

    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Pen: IGPPen;
    begin
      Graphics := TGPGraphics.Create(Handle);
      Pen := TGPPen.Create($FFC71585, 11);
      Pen.DashStyle := DashStyleDashDot;
    
      Pen.SetLineCap(LineCapRoundAnchor, LineCapArrowAnchor, DashCapTriangle);
    
      Graphics.DrawLine(Pen, 20, 30, 300, 30);
    end;
    

  • 相关阅读:
    windows下 python2 和python3 共存
    利用xshell远程连接centos安装oracle11g时在图形界面登录
    本地导入/导出远程oracle数据库
    centos7安装桌面环境
    普通用户修改.bash_profile 权限问题
    centos7 安装oracle11g
    Unable to fetch some archives ,maybe run apt-get update or try with --fix-missing?
    spring mvc 使用ehcache
    leaflet创建简单地图
    【BZOJ 3958】 3958: [WF2011]Mummy Madness (二分+扫描线、线段树)
  • 原文地址:https://www.cnblogs.com/del/p/1625455.html
Copyright © 2011-2022 走看看