函数GetTextMetrics可以获取一个字体文本度量并将它放入一个类型为TEXTMETRIC的数据结构中,该结构如下所示:
typedef struct ta
TEXTMETRIC
The TEXTMETRIC structure contains basic information about a
physical font. All sizes are specified in logical units; that is, they depend on
the current mapping mode of the display context.
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;
Members
tmHeight
Specifies the height (ascent + descent) of
characters.
tmAscent
Specifies the ascent (units above the
base line) of characters.
tmDescent
Specifies the descent
(units below the base line) of
characters.
tmInternalLeading
Specifies the amount of leading
(space) inside the bounds set by the tmHeight member. Accent marks and other
diacritical characters may occur in this area. The designer may set this member
to zero.
tmExternalLeading
Specifies the amount of extra
leading (space) that the application adds between rows. Since this area is
outside the font, it contains no marks and is not altered by text output calls
in either OPAQUE or TRANSPARENT mode. The designer may set this member to
zero.
tmAveCharWidth
Specifies the average width of characters
in the font (generally defined as the width of the letter x). This value does
not include the overhang required for bold or italic
characters.
tmMaxCharWidth
Specifies the width of the widest
character in the font.
tmWeight
Specifies the weight of the
font.
tmOverhang
Specifies the extra width per string that may
be added to some synthesized fonts. When synthesizing some attributes, such as
bold or italic, graphics device interface (GDI) or a device may have to add
width to a string on both a per-character and per-string basis. For example, GDI
makes a string bold by expanding the spacing of each character and overstriking
by an offset value; it italicizes a font by shearing the string. In either case,
there is an overhang past the basic string. For bold strings, the overhang is
the distance by which the overstrike is offset. For italic strings, the overhang
is the amount the top of the font is sheared past the bottom of the
font.
The tmOverhang member enables the application to determine how
much of the character width returned by a GetTextExtentPoint32 function call on
a single character is the actual character width and how much is the per-string
extra width. The actual width is the extent minus the overhang.
tmDigitizedAspectX
Specifies the horizontal aspect of the device for
which the font was designed.
tmDigitizedAspectY
Specifies the
vertical aspect of the device for which the font was designed. The ratio of the
tmDigitizedAspectX and tmDigitizedAspectY members is the aspect ratio of the
device for which the font was designed.
tmFirstChar
Specifies
the value of the first character defined in the
font.
tmLastChar
Specifies the value of the last character
defined in the font.
tmDefaultChar
Specifies the value of the
character to be substituted for characters not in the
font.
tmBreakChar
Specifies the value of the character that
will be used to define word breaks for text
justification.
tmItalic
Specifies an italic font if it is
nonzero.
tmUnderlined
Specifies an underlined font if it is
nonzero.
tmStruckOut
Specifies a strikeout font if it is
nonzero.
tmPitchAndFamily
Specifies information about the
pitch, the technology, and the family of a physical font.
The four
low-order bits of this member specify information about the pitch and the
technology of the font. A constant is defined for each of the four bits.
gTEXTMETRIC { // 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;
本文来自CSDN博客,转载请标明出处:file:///E:/Program/EMR/C++/基本/TEXTMETRIC%20结构详解%20-%20lmjq的专栏%20-%20CSDN博客.mht
原文:http://www.cnblogs.com/songtzu/p/3539782.html