描述
NEWTEXTMETRIC结构包含描述物理字体的数据。
C++ 语法
typedef struct tagNEWTEXTMETRIC { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; TCHAR tmFirstChar; TCHAR tmLastChar; TCHAR tmDefaultChar; TCHAR tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; DWORD ntmFlags; UINT ntmSizeEM; UINT ntmCellHeight; UINT ntmAvgWidth; } NEWTEXTMETRIC, *PNEWTEXTMETRIC; |
PowerBASIC 语法
TYPE NEWTEXTMETRICA tmHeight AS LONG tmAscent AS LONG tmDescent AS LONG tmInternalLeading AS LONG tmExternalLeading AS LONG tmAveCharWidth AS LONG tmMaxCharWidth AS LONG tmWeight AS LONG tmOverhang AS LONG tmDigitizedAspectX AS LONG tmDigitizedAspectY AS LONG tmFirstChar AS BYTE tmLastChar AS BYTE tmDefaultChar AS BYTE tmBreakChar AS BYTE tmItalic AS BYTE tmUnderlined AS BYTE tmStruckOut AS BYTE tmPitchAndFamily AS BYTE tmCharSet AS BYTE ntmFlags AS DWORD ntmSizeEM AS DWORD ntmCellHeight AS DWORD ntmAveWidth AS DWORD END TYPE |
Unicode版本:
TYPE NEWTEXTMETRICW tmHeight AS LONG tmAscent AS LONG tmDescent AS LONG tmInternalLeading AS LONG tmExternalLeading AS LONG tmAveCharWidth AS LONG tmMaxCharWidth AS LONG tmWeight AS LONG tmOverhang AS LONG tmDigitizedAspectX AS LONG tmDigitizedAspectY AS LONG tmFirstChar AS WORD tmLastChar AS WORD tmDefaultChar AS WORD tmBreakChar AS WORD tmItalic AS BYTE tmUnderlined AS BYTE tmStruckOut AS BYTE tmPitchAndFamily AS BYTE tmCharSet AS BYTE ntmFlags AS DWORD ntmSizeEM AS DWORD ntmCellHeight AS DWORD ntmAveWidth AS DWORD END TYPE |
成员
tmHeight
指定字符的高度(上升+下降)。
tmAscent
指定字符的上升(基线以上的单位)。
tmDescent
指定字符的下降(基线以下的单位)。
tmInternalLeading
指定由tmHeight中成员设置的边界内的前导(空格)的数量。这个区域可能会出现重音和其他变音符号。设计人员可以将此成员设置为零。
tmExternalLeading
指定应用程序在行之间添加的额外引导(空格)的数量。由于该区域不在字体之外,它不包含任何标记,并且在OPAQUE或TRANSPARENT模式下的文本输出调用不会更改。设计人员可以将此成员设置为零。
tmAveCharWidth
指定字体中字符的平均宽度(通常定义为字母x的宽度)。该值不包括粗体或斜体字符所需的悬垂。
tmMaxCharWidth
指定字体中最宽字符的宽度。
tmWeight
指定字体的重量。
tmOverhang
指定可能添加到某些合成字体的每个字符串的额外宽度。当合成一些属性(例如粗体或斜体)时,图形设备接口(GDI)或设备可能必须在每个字符和每个字符串的基础上为字符串添加宽度。例如,GDI通过扩展每个字符的间距并通过一个偏移值来突出显示字符串粗体;它通过剪切字符串来斜体字体。无论哪种情况,基本字符串都有一个突出端。对于粗体字符串,突出部分是偏移距离。对于斜体字符串,悬垂是通过字体底部剪切字体顶部的量。
tmOverhang成员使应用程序能够确定单个字符上的GetTextExtentPoint32函数调用返回的字符宽度是实际字符宽度,每字符串额外宽度多少。实际宽度是减去突出端的程度。
tmDigitizedAspectX
指定设计字体的设备的水平方面。
tmDigitizedAspectY
指定设计字体的设备的垂直方面。tmDigitizedAspectX和tmDigitizedAspectY成员的比例是设计字体的设备的宽高比。
tmFirstChar
指定字体中定义的第一个字符的值。
tmLastChar
指定字体中定义的最后一个字符的值。
tmDefaultChar
指定要替换为不在字体中的字符的字符的值。
tmBreakChar
指定用于定义文本对齐的单词的字符的值。
tmItalic
指定一个斜体字体,如果它是非零。
tmUnderlined
如果非零,则指定下划线字体。
tmStruckOut
指定一个删除字体,如果它是非零。
tmPitchAndFamily
指定所选字体的音高和系列。低位(位0)指定字体的间距。如果为1,则字体为可变间距(或比例)。如果为0,则字体为固定间距(或等宽)。位1和2指定字体类型。如果两位均为0,则字体为栅格字体;如果位1为1且位2为0,则字体为向量字体;如果位1为0且位2置1,或者两位为1,则字体为其他类型。如果字体是设备字体,则位3为1;否则为0。
四个高位指定字体系列。可以使用按位AND运算符将tmPitchAndFamily成员与十六进制值&HF0进行组合,然后将其与字体系列名称进行比较以进行相同匹配。有关字体系的详细信息,请参阅LOGFONT.
tmCharSet
指定字体的字符集。
ntmFlags
指定字体是斜体,下划线,粗体,粗体等。可以是以下值的合理组合。
位 |
名称 |
含义 |
0 |
NTM_ITALIC |
斜体 |
5 |
NTM_BOLD |
胆大 |
8 |
NTM_REGULAR |
定期 |
16 |
NTM_NONNEGATIVE_AC |
Windows 2000 / XP / Vista / Windows 7:任何大小的字体中没有字形具有负A或C空格。 |
17 |
NTM_PS_OPENTYPE |
Windows 2000 / XP / Vista / Windows 7:PostScript OpenType字体 |
18 |
NTM_TT_OPENTYPE |
Windows 2000 / XP / Vista / Windows 7:TrueType OpenType字体 |
19 |
NTM_MULTIPLEMASTER |
Windows 2000 / XP / Vista / Windows 7:多主字体 |
20 |
NTM_TYPE1 |
Windows 2000 / XP / Vista / Windows 7:键入1字体 |
21 |
NTM_DSIG |
Windows 2000 / XP / Vista / Windows 7:具有数字签名的字体。这允许可追溯性,并确保字体已经过测试并且没有损坏 |
ntmSizeEM
指定字体的em方形的大小。该值是以名义单位(即字体设计的单位)。
ntmCellHeight
以名义单位指定字体的高度。该值应与ntmSizeEM成员的值进行比较。
ntmAvgWidth
指定字体中字符的平均宽度,以名义单位。该值应与ntmSizeEM成员的值进行比较。
备注
NEWTEXTMETRIC结构的最后四位成员不包括在TEXTMETRIC结构中;在所有其他方面,结构是相同的。
NEWTEXTMETRIC结构中的大小通常以逻辑单位指定;也就是说,它们取决于显示上下文的当前映射模式。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)