zoukankan      html  css  js  c++  java
  • 【转】WinAPI: CreateFontIndirect

    //声明:
    CreateFontIndirect(
      const p1: TLogFont {字体结构}
    ): HFONT;            {返回新字体指针}
    
    //TLogFont 是 tagLOGFONTA 结构的重定义:
    tagLOGFONTA = packed record
      lfHeight: Longint;      {字体高度}
      lfWidth: Longint;       {字体平均宽度}
      lfEscapement: Longint;  {角度, 单位是 1/10 度}
      lfOrientation: Longint; {基线角度}
      lfWeight: Longint;      {粗体, 取值: 0-1000}
      lfItalic: Byte;         {斜体}
      lfUnderline: Byte;      {下划线}
      lfStrikeOut: Byte;      {删除线}
      lfCharSet: Byte;        {字符集}
      lfOutPrecision: Byte;   {输出精度}
      lfClipPrecision: Byte;  {剪裁精度}
      lfQuality: Byte;        {输出质量}
      lfPitchAndFamily: Byte; {间距及字族}
      lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar; {字样名称}
    end;
    

    以上是要用到的一个数据结构,unit windows.

    使用方法详细:

      {定义字体特征}
      FontInfo.lfHeight := 0;     {赋值 0, 系统自动给一个值}
      FontInfo.lfWidth := 0;      {赋值 0, 系统自动给一个值}
      FontInfo.lfEscapement := 0; {无角度}
      FontInfo.lfWeight := 500;   {中等加粗}
      FontInfo.lfItalic := 0;     {非斜体}
      FontInfo.lfUnderline := 0;  {无下划线}
      FontInfo.lfStrikeOut := 0;  {无删除线}
      FontInfo.lfFaceName := '宋体';
      
      FH1 := CreateFontIndirect(FontInfo);
      FH2 := SelectObject(Canvas.Handle, FH1);
      {用 CreateFontIndirect 建立逻辑字体; 用 SelectObject 选人设备; 并返回字体句柄}
      
      TextOut(Canvas.Handle, X, Y, str, Length(str));
      
      DeleteObject(FH1);
      DeleteObject(FH2);

    详细:万一的博客

    想要循环的文字:改变属性Escapement,循环输出

    注意点:

    FH1 := CreateFontIndirect(FontInfo);
    FH2 := SelectObject(Canvas.Handle, FH1);

    这两个用完以后要及时删除!!

    DeleteObject(FH1);
    DeleteObject(FH2);

      

  • 相关阅读:
    二叉苹果树|codevs5565|luoguP2015|树形DP|Elena
    没有上司的舞会|codevs1380|luoguP1352|树形DP|Elena
    NYOJ15|括号匹配(二)|区间DP|Elena
    AtCoder Beginner Contest 070|Elena|8.12|#471
    NYOJ16|嵌套矩形|DP|DAG模型|记忆化搜索
    7.26-STOIRegularMatch-08-#14
    跳石头|河中跳房子|NOIP2015提高组T4|二分法
    BZOJ2330: [SCOI2011]糖果
    BZOJ1295: [SCOI2009]最长距离
    BZOJ1263: [SCOI2006]整数划分
  • 原文地址:https://www.cnblogs.com/laymond/p/3392510.html
Copyright © 2011-2022 走看看