TEXTMETRIC是在WINGDI.H中定义的型态的结构。
TEXTMETRIC结构有20个栏位:
typedef struct tagTEXTMETRIC { // tm
LONG tmHeight; //字符高度
LONG tmAscent; //字符上部高度(基线以上)
LONG tmDescent; //字符下部高度(基线以下)
LONG tmInternalLeading, //由tmHeight定义的字符高度的顶部空间数目
LONG tmExternalLeading, //夹在两行之间的空间数目
LONG tmAveCharWidth, //平均字符宽度
LONG tmMaxCharWidth, //最宽字符的宽度
LONG tmWeight; //字体的粗细轻重程度
LONG tmOverhang, //加入某些拼接字体上的附加高度
LONG tmDigitizedAspectX, //字体设计所针对的设备水平方向
LONG tmDigitizedAspectY, //字体设计所针对的设备垂直方向
BCHAR tmFirstChar; //为字体定义的第一个字符
BCHAR tmLastChar; //为字体定义的最后一个字符
BCHAR tmDefaultChar; //字体中所没有字符的替代字符
BCHAR tmBreakChar; //用于拆字的字符
BYTE tmItalic, //字体为斜体时非零
BYTE tmUnderlined, //字体为下划线时非零
BYTE tmStruckOut, //字体被删去时非零
BYTE tmPitchAndFamily, //字体间距(低4位)和族(高4位)
BYTE tmCharSet; //字体的字符集
} TEXTMETRIC;
变量:
BYTE tmPitchAndFamily: 
TMPF_FIXED_PITCH
为真表示变长型字体,为假是定长型字体
TMPF_VECTOR
为真表示矢量字体
TMPF_TRUETYPE
为真表示全真字体
TMPF_DEVICE
为真表示设备字体。.
TEXTMETRIC类型的变量用于存储装置字体结构信息(上述变量),在窗口中输出文字时需要用到上述变量。

TEXTMETRIC示例

编辑

TEXTMETRIC示例一
要获得TEXTMETRIC类型变量的值在windows SDK中可以用GetTextMetrics(HDC,LPTEXTMETRIC)函数;在MFC中可以用GetTextMetrics(&tm)。
运用例子如下:
运用Windows SDK的情况:
TEXTMETRIC tm;
GetTextMetrics(hdc,&tm);
运用MFC 的使用情况:
TEXTMETRIC tm;
CDC::GetTextMetrics(&tm);

TEXTMETRIC示例二

下面是取得系统字体的字符宽度和高度的WM_CREATE程序代码:
case WM_CREATE:
hdc = GetDC (hwnd) ;
GetTextMetrics (hdc, &tm) ;
cxChar = tm.tmAveCharWidth ;
cyChar = tm.tmHeight + tm.tmExternalLeading ;
ReleaseDC (hwnd, hdc) ;
return 0 ;
其中cxChar、cyChar、cxCaps都是在回调函数中定义的static int类型的变量。对于固定宽度的字体, cxCaps等于cxChar。对于可变宽度字体,cxCaps设定为cxChar乘以150%。对于可变宽度字体,TEXTMETRIC结构中的tmPitchAndFamily字段的低位为1,对于固定宽度字体,该值为0。 示例二中使用这个位从cxChar计算cxCaps: cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ;

转载于:https://www.cnblogs.com/suzhengxiong/p/6665940.html

textmetric结构相关推荐

  1. TEXTMETRIC 结构详解

    TEXTMETRIC 结构详解 函数GetTextMetrics可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示: typedef struct ta TE ...

  2. VC++ 单文档的状态栏编程、CEditView类实现编辑器功能、编辑框显示行号列号

    Win10 企业版:VC6: 新建一个单文档工程:默认的视图类的基类是CView:选择CEditView类作为,看一下生成的效果: 构建一下:运行:以CEditView作为基类,生成的应用程序具有编辑 ...

  3. Visual C++中最常用的类与API函数

    这篇文章能让初学者快速了解visual C++ MFC中常见的核心的类与函数,虽然全部看下来有点枯燥,但对初学者快速了解MFC的框架结构很有好处. 常用类 CArchive类:用于二进制保存档案  C ...

  4. Windows API-GDI入门基础知识详解 来源: PConline.com.cn

    什么是GDI? GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出. 在Wind ...

  5. 第05章 图形基础

    图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形.正如您所认为的那样,GDI是Windows非常重要的部分.不只 ...

  6. 第五章 图像基础(设备内容)

    设备内容 在开始绘图之前,让我们比第四章更精确地讨论一下设备内容. 当您想在一个图形输出设备(诸如屏幕或者打印机)上绘图时,您首先必须获得一个设备内容(或者DC)的句柄.将句柄传回给程序时,Windo ...

  7. 第五章--设备内容(The Device Context)(2)

    设备的大小 假定要绘制边长为1英寸的正方形,您(程序写作者)或Windows(操作系统)需要知道视讯显示上1英寸对应多少图素.使用GetDeviceCaps函数能取得有关如视讯显示器和打印机之类输出设 ...

  8. MFC应用程序设计(第二版)学习笔记

    第一章, Windows应用开发基础 基本概念 windows API函数按功能大体分为以下: 窗口管理函数 WUI 图形设备管理函数 GUI 系统服务函数 SUI 早期开发使用软件开发工具包sdk, ...

  9. win32 字体 api学习总结

    TrueType字体 TrueType字体,中文名称全真字体,是由Apple公司和Microsoft公司联合提出的一种采用新型数学字形描述技术的计算机字体.它用数学函数描述字体轮廓外形,含有字形构造. ...

最新文章

  1. 变,从南到北,从北到南...
  2. [bbk2908]第4集 - Chapter 03 - 介绍RAC的体系结构
  3. 【软件测试】黑盒测试の场景测试法
  4. C++是什么?怎么学?学完了能得到什么?
  5. 牛的旅行(信息学奥赛一本通-T1343)
  6. meterpreter持久后门
  7. xxl-job使用笔记
  8. Django权限管理测试
  9. 电阻电容封装用错该怎么办
  10. 基于单片机智能自动浇花控制系统设计(毕业设计)
  11. 【数学建模】因子分析
  12. android逆向基础教程一
  13. 升腾 linux管理密码,升腾Linux终端使用指南
  14. 声音信号基音提取算法基频和谐波处理分析
  15. 【焊接】 焊接技巧
  16. Oracle 递归查询SQL
  17. LeetCode 805数组切割题目
  18. 解决Ubuntu 20.04 播放视频,因缺少编解码器无法处理音频/视频流,以及解决‘因没有公钥,无法验证下列签名’问题
  19. 图解 Vue3.0 编译器核心原理(Vue3.0源码解析)
  20. 19-你知道哪几种锁?分别有什么特点?

热门文章

  1. Node.js 极简笔记
  2. 什么推动当今品牌的忠诚度
  3. VUE之监听属性 watch
  4. 对某bc站的一次渗透测试
  5. 如何避免Puppeteer被前端JS检测
  6. 《数据库SQL实战》查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
  7. ajax的常见几种写法以及用法
  8. ssh-keygen 的 详解
  9. LRU算法及Java实现
  10. 图解 ElasticSearch 搜索原理