描述
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
指定设计字体的设备的垂直方面。tmDigitizedAspectX和tmDigitizedAspectY成员的比例是字体设计的设备的宽高比。
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)