勇芳软件工作室.汉化:  Fonts and Text > Fonts and Text Structures >

NEWTEXTMETRIC

Previous pageReturn to chapter overviewNext page

描述

 

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

 

指定设计字体的设备的垂直方面。tmDigitizedAspectXtmDigitizedAspectY成员的比例是设计字体的设备的宽高比。

 

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)