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

TEXTMETRIC

Previous pageReturn to chapter overviewNext page

描述

 

TEXTMETRIC结构包含有关物理字体的基本信息。所有尺寸均以逻辑单位指定;也就是说,它们取决于显示上下文的当前映射模式。

 

C++ 语法

 

typedef struct tagTEXTMETRIC {

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;

} TEXTMETRIC,

*PTEXTMETRIC;

 

PowerBASIC 语法

 

TYPE TEXTMETRICA

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

END TYPE

 

Unicode版本:

 

TYPE TEXTMETRICW

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

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

 

指定有关物理字体的音高,技术和系列的信息。

 

该成员的四个低位指定关于字体和字体技术的信息。为四个位中的每一个定义常数。

 

不变

含义

TMPF_FIXED_PITCH

如果该位被设置,字体是可变的音调字体。如果该位清晰,字体是固定的音高字体。请注意,这些含义与常数名称所暗示的相反。

TMPF_VECTOR

如果该位被设置为字体是矢量字体。

TMPF_TRUETYPE

如果该位被设置,字体是TrueType字体。

TMPF_DEVICE

如果该位被设置为字体是设备字体。

 

应用程序应仔细测试这些低位位编码的质量,不作任何假设。例如,除了设置自己的位之外,TrueType和PostScript字体设置了TMPF_VECTOR位。等宽位图字体将所有这些低位清零;比例位图字体设置TMPF_FIXED_PITCH位。Postscript打印机设备字体设置TMPF_DEVICE,TMPF_VECTOR和TMPF_FIXED_PITCH位。

 

tmPitchAndFamily的四个高位指定字体的字体系列。应用程序可以使用值&HF0和按位AND运算符来屏蔽tmPitchAndFamily的四个低位,从而获得一个值,可直接与字体系列进行比较,以找到相同的匹配项。有关字体系的信息,请参阅LOGFONT结构的说明。

 

tmCharSet

 

指定字体的字符集。字符集可以是以下值之一。

 

ANSI_CHARSET

BALTIC_CHARSET

CHINESEBIG5_CHARSET

DEFAULT_CHARSET

EASTEUROPE_CHARSET

GB2312_CHARSET

GREEK_CHARSET

HANGUL_CHARSET

MAC_CHARSET

OEM_CHARSET

RUSSIAN_CHARSET

SHIFTJIS_CHARSET

SYMBOL_CHARSET

TURKISH_CHARSET

VIETNAMESE_CHARSET

 

韩语版Windows:

 

JOHAB_CHARSET

 

中东语言版Windows:

 

ARABIC_CHARSET

HEBREW_CHARSET

 

泰语版Windows:

 

THAI_CHARSET

 

引用文件 #INCLUDE Once

 

WinGdi.inc(包括Windows.inc)