TEXTXFORM

typedef struct tagTEXTXFORM {

short txfHeight;

short txfWidth;

short txfEscapement;

short txfOrientation;

short txfWeight;

char txfItalic;

char txfUnderline;

char txfStrikeOut;

char txfOutPrecision;

char txfClipPrecision;

short txfAccelerator;

short txfOverhang;

} TEXTXFORM;

The TEXTXFORM structure contains information describing the actual appearance of text as displayed by the device. The StrBlt and ExtTextOut functions check the the TEXTXFORM structure to determine what additional actions are required to generate the desired text from the specified physical font.

Members

txfHeight

Specifies the height of characters (ascent + descent) in device units.

txfWidth

Specifies the width in device units of the bounding box of the letter “X.”

txfEscapement

Specifies the angle in tenths of a degree counterclockwise from the x-axis of the vector passing through the origin of all the characters in the string.

txfOrientation

Specifies the angle in tenths of a degree counterclockwise from the x-axis of the baseline of the character.

txfWeight

Specifies the weight of the font ranging from 1 to 1000, with 400 being the value for the standard font.

txfItalic

Specifies whether the font is to be italic. If the low bit is set, the font is to be italic. All the other bits must be zero.

txfUnderline

Specifies whether the font is to be underlined. If the low bit is set, the font is to be underlined. All the other bits must be zero.

txfStrikeOut

Specifies whether to strike out the font. If the low bit is set, the font is to be struck out. All the other bits must be zero.

txfOutPrecision

Specifies the required output precision for text. This member can have one of the following values.

Value Meaning

OUT_DEFAULT_PRECIS (0x00) Chooses a reasonable font.
OUT_STRING_PRECIS (0x01) Chooses the font whose size (height and width) most closely matches the requested size. The driver may disregard the requested orientation and escapement, but other attributes must match.
OUT_CHARACTER_PRECIS (0x02) Chooses the font whose size (height and width) most closely matches the requested size. The driver may disregard the requested orientation, but other attributes must match.
OUT_STROKE_PRECIS (0x03) Chooses a font whose attributes exactly match the requested attributes.

txfClipPrecision

Specifies the required clipping precision for text. This member can have one of the following values.

Value Meaning

CLIP_DEFAULT_PRECIS (0x00) Chooses a reasonable font.
CLIP_CHARACTER_PRECIS (0x01) Chooses a font that allows clipping of individual characters. The driver must be able to clip a character if any portion of it lies outside the clipping rectangle.
CLIP_STROKE_PRECIS (0x02) Chooses a font that allows clipping of portions of a character. The driver must be able to clip any portion of a character that lies outside the clipping rectangle.

txfAccelerator

Specifies the requested text modifications using the same format as the the dpText member in the GDIINFO structure. Each bit in this member is set if the corresponding ability is required to modify the physical font into the requested font.

txfOverhang

Specifies same information as the tmOverhang member in the TEXTMETRIC structure. This member is set by the device for device-realized fonts and is in device units. GDI uses additional overhang if it makes the font bold.

Comments

Although most of the members in the TEXTXFORM structure correspond to the members in the LFONT structure, these members may not always exactly match. For example, if the logical font specified a 19-unit font at string precision and the closest available was a 9-unit font on a device capable of doubling, then the txfHeight member in the structure is 18.

A driver should check the dpText member in its GDIINFO structure to determine whether the driver can carry out the requested text modifications. In particular, the driver should check the bitwise difference between the txfAccelerator member and the dpText member to determine what abilities it should simulate. If the driver can not carry out the modifications, GDI is responsible for simulating the required modifications.

See Also

EngineRealizeFont, ExtTextOut, StrBlt