zoukankan      html  css  js  c++  java
  • GDI+ 学习记录(22): 输出文本<1>

    //输出文本
    var
      g: TGPGraphics;
      sb: TGPSolidBrush;
      fontFamily: TGPFontFamily;
      font: TGPFont;
    begin
      g := TGPGraphics.Create(Canvas.Handle);
      sb := TGPSolidBrush.Create(MakeColor(0,0,255));
      fontFamily := TGPFontFamily.Create('宋体');
      font := TGPFont.Create(fontFamily, 48, FontStyleRegular, UnitPixel);
      {参数 3 参考: 文本样式类型表; 参数 4 参考: 坐标单位类型表}
    
      g.DrawString('Hello World!', -1, font, MakePoint(10.0,10.0), sb);
      {参数 2 是输出文本的长度, -1 表示全部输出;
       参数 4 中的坐标不能用整数, 因为函数指定类型是: TGPRectF}
    
      sb.Free;
      fontFamily.Free;
      font.Free;
      g.Free;
    end;
    
    //简单输出文本 var g: TGPGraphics; sb: TGPSolidBrush; font: TGPFont; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,0,0)); font := TGPFont.Create('宋体',32.0); g.DrawString('再见, 2007!', -1, font, MakePoint(10.0,10.0), sb); sb.Free; font.Free; g.Free; end;
    //使用窗体字体属性输出文本 var g: TGPGraphics; sb: TGPSolidBrush; font: TGPFont; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,0,0)); font := TGPFont.Create(Self.Canvas.Handle); //根据窗体的字体属性建立 g.DrawString('再见, 2007!', -1, font, MakePoint(10.0,10.0), sb); sb.Free; font.Free; g.Free; end;
    //文本呈现质量 var g : TGPGraphics; FontFamily: TGPFontFamily; Font: TGPFont; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); FontFamily := TGPFontFamily.Create('Times New Roman'); Font := TGPFont.Create(FontFamily, 32, FontStyleRegular, UnitPixel); sb := TGPSolidBrush.Create(MakeColor(255, 0, 0, 255)); g.SetTextRenderingHint(TextRenderingHintSingleBitPerPixel); g.DrawString('SingleBitPerPixel', -1, font, MakePoint(10.0, 10.0), sb); g.SetTextRenderingHint(TextRenderingHintAntiAlias); g.DrawString('AntiAlias', -1, font, MakePoint(10.0, 60.0), sb); g.Free; FontFamily.Free; Font.Free; sb.Free; end;
    文本样式类型表:

    Delphi 微软 说明
    FontStyleBold Bold 加粗文本。
    FontStyleItalic Italic 倾斜文本。
    FontStyleRegular Regular 普通文本。
    FontStyleStrikeout Strikeout 中间有直线通过的文本。
    FontStyleUnderline  Underline  带下划线的文本。


    坐标单位类型表:

    Delphi 微软 说明
    UnitDisplay Display 指定显示设备的度量单位。通常,视频显示使用的单位是像素;打印机使用的单位是 1/100 英寸。
    UnitDocument  Document  将文档单位(1/300 英寸)指定为度量单位。
    UnitInch Inch 将英寸指定为度量单位。
    UnitMillimeter Millimeter 将毫米指定为度量单位。
    UnitPixel Pixel 将设备像素指定为度量单位。
    UnitPoint Point 将打印机点(1/72 英寸)指定为度量单位。
    UnitWorld World 将世界坐标系单位指定为度量单位。


    文本呈现质量模式:

    Delphi 微软 说明
    TextRenderingHintAntiAlias AntiAlias 在无提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到改善。由于关闭了提示,主干宽度差可能会比较明显。
    TextRenderingHintAntiAliasGridFit AntiAliasGridFit 在有提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到大大改善,但同时会增加性能成本。
    TextRenderingHintClearTypeGridFit ClearTypeGridFit 在有提示的情况下使用每个字符的标志符号 ClearType 位图来绘制字符。这是质量最高的设置。用于利用 ClearType 字体功能。
    TextRenderingHintSingleBitPerPixel SingleBitPerPixel 使用每个字符的标志符号位图来绘制字符。不使用提示。
    TextRenderingHintSingleBitPerPixelGridFit  SingleBitPerPixelGridFit  使用每个字符的标志符号位图来绘制字符。提示用于改善字符在主干和弯曲部分的外观。
    TextRenderingHintSystemDefault SystemDefault 在有系统默认呈现提示的情况下使用每个字符的标志符号位图来绘制字符。将采用用户为系统选择的任何字体修匀设置来绘制文本。


  • 相关阅读:
    性能测试学习第五天-----Jmeter测试脚本&基础元件使用
    【win10主机】连接virtualbox上【32位winXP系统虚拟机】上启动的mysql
    【win10主机】访问virtualbox上【32位winXP系统虚拟机】上启动的项目
    性能测试学习第四天-----loadrunner:jdbc批量制造测试数据 & controller应用
    appium输入法踩坑解决方案-----中文乱码及输入法搜索无法点击
    性能测试学习第三天-----loadrunner接口测试&中文乱码处理
    Ext JS学习第四天 我们所熟悉的javascript(三)
    Ext JS学习第五天 我们所熟悉的javascript(四)
    ExtJS学习第一天 MessageBox
    C#使用Zxing2.0生成二维码 带简单中心LOGO
  • 原文地址:https://www.cnblogs.com/del/p/1017439.html
Copyright © 2011-2022 走看看