zoukankan      html  css  js  c++  java
  • GdiPlus[22]: IGPFont


    测试效果图:



    uses GdiPlus;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      Graphics: IGPGraphics;
      Brush: IGPSolidBrush;
      Pt: TGPPointF;
      Font: IGPFont;
    begin
      Graphics := TGPGraphics.Create(Handle);
      Pt.Initialize(10, 10);
      Brush := TGPSolidBrush.Create($FFFF0000);
    
      Font := TGPFont.Create(Canvas.Handle);
      Graphics.DrawString('Self.Canvas.Font', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12);
      Graphics.DrawString('''微软雅黑'', 12', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleBold]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleBold]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleItalic]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleItalic]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleUnderline]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleUnderline]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, [FontStyleStrikeout]);
      Graphics.DrawString('''微软雅黑'', 12, [FontStyleStrikeout]', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, FontStyleBoldItalic);
      Graphics.DrawString('''微软雅黑'', 12, FontStyleBoldItalic', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, FontStyleRegular, UnitPoint);
      Graphics.DrawString('''微软雅黑'', 12, FontStyleRegular, UnitPoint', Font, Pt, Brush);
    
      Graphics.TranslateTransform(0, Font.GetHeight(Graphics) * 1.5);
      Font := TGPFont.Create('微软雅黑', 12, FontStyleRegular, UnitPixel);
      Graphics.DrawString('''微软雅黑'', 12, FontStyleRegular, UnitPixel', Font, Pt, Brush);
    end;
    

    下面是一个关于 IGPFont 成员的测试:

    var
      FontFamily: IGPFontFamily;
      Font,Font2: IGPFont;
      FontHight: Single;
      LogFont: TLogFontW;
    begin
      FontFamily := TGPFontFamily.Create('宋体');
      Font := TGPFont.Create(FontFamily, 16, FontStyleBoldItalic, UnitPixel);
    //  Font := TGPFont.Create(FontFamily, 16, [], UnitPixel);
    
      { Font.Size: 字号大小}
      ShowMessageFmt('FontSize: %f', [Font.Size]); //16.00
    
      { Font.Style: 字体样式 }
      if FontStyleBold in Font.Style then ShowMessage('Bold');
      if FontStyleItalic in Font.Style then ShowMessage('Italic');
      if FontStyleUnderline in Font.Style then ShowMessage('Underline');
      if FontStyleStrikeout in Font.Style then ShowMessage('Strikeout');
      if ((FontStyleBoldItalic * Font.Style) = FontStyleBoldItalic) then ShowMessage('Bold、Italic');
      if Font.Style = [] then ShowMessage('FontStyleRegular');
    
      { Font.MeasureUnit: 尺寸单位 }
      case Font.MeasureUnit of
        UnitWorld:      ShowMessage('World');
        UnitDisplay:    ShowMessage('Display');
        UnitPixel:      ShowMessage('Pixel');
        UnitPoint:      ShowMessage('Point');
        UnitInch:       ShowMessage('Inch');
        UnitDocument:   ShowMessage('Document');
        UnitMillimeter: ShowMessage('Millimeter');
      end;
    
      { Font.GetHeight: 字体高度 }
      FontHight := Font.GetHeight(TGPGraphics.Create(Handle));
    //  FontHight := Font.GetHeight(nil);
    //  FontHight := Font.GetHeight(0);
      ShowMessageFmt('FontHight: %f', [FontHight]); //18.25
    
      { Font.IsAvailable: 字体是否可用 }
      ShowMessage(BoolToStr(Font.IsAvailable, True));
    
      { Font.GetLogFontW: 获取 TLogFont 结构数据 }
      LogFont := Font.GetLogFontW(TGPGraphics.Create(Handle));
      ShowMessage(LogFont.lfFaceName);
    
      { Font.Family: 获取 IGPFontFamily }
      ShowMessage(Font.Family.FamilyName);
    
      { Font.Clone: 克隆 }
      Font2 := Font.Clone;
      ShowMessage(Font2.Family.FamilyName);
    end;
    
  • 相关阅读:
    HDU 4472 Count DP题
    HDU 1878 欧拉回路 图论
    CSUST 1503 ZZ买衣服
    HDU 2085 核反应堆
    HDU 1029 Ignatius and the Princess IV
    UVa 11462 Age Sort
    UVa 11384
    UVa 11210
    LA 3401
    解决学一会儿累了的问题
  • 原文地址:https://www.cnblogs.com/del/p/1624784.html
Copyright © 2011-2022 走看看