ExtTextOut
The ExtTextOut
function draws a character string by using the currently selected font. An
optional rectangle may be provided, to be used for clipping, opaquing, or both.
BOOL ExtTextOut(
HDC hdc, |
// handle to device
context |
int X, |
// x-coordinate of
reference point |
int Y, |
// y-coordinate of
reference point |
UINT fuOptions, |
// text-output
options |
CONST RECT *lprc, |
// optional
clipping and/or opaquing rectangle |
LPCTSTR lpString, |
// points to string
|
UINT cbCount, |
// number of
characters in string |
CONST INT *lpDx |
// pointer to array
of intercharacter spacing values |
); |
|
Parameters
hdc
Identifies
the device context.
X
Specifies the
logical x-coordinate of the reference point used to position the string.
Y
Specifies the
logical y-coordinate of the reference point used to position the string.
fuOptions
Specifies how
to use the application-defined rectangle. This parameter can be a combination
of the following values:
Value |
Meaning |
ETO_CLIPPED |
The text
will be clipped to the rectangle. |
ETO_GLYPH_INDEX |
Windows
95 only: The lpString array
refers to an array returned from GetCharacterPlacement and should be
parsed directly by GDI as no further language-specific processing is
required. Glyph indexing only applies to TrueType fonts, but the flag can be
used for Windows bitmap and vector fonts to indicate no further language
processing is necessary and GDI should process the string directly. Note that
all glyph indices are 16-bit values even though the string is assumed to be
an array of 8-bit values for raster fonts. |
ETO_OPAQUE |
The current
background color should be used to fill the rectangle. |
ETO_RTLREADING |
Windows
95 only: If this value is specified
and a Hebrew or Arabic font is selected into the device context, the string
is output using right-to-left reading order. If this value is not specified,
the string is output in left- to-right order. The same effect can be achieved
by setting the TA_RTLREADING value in SetTextAlign. This value is
preserved for backward compatability. |
The
ETO_GLYPH_INDEX and ETO_RTLREADING values cannot be used together. Because
ETO_GLYPH_INDEX implies that all language processing has been completed, the
function ignores the ETO_RTLREADING flag if also specified.
lprc
Points to an
optional RECT
lpString
Points to the
character string to be drawn. The string does not need to be zero-terminated,
since cbCount specifies the length of the string.
cbCount
Specifies the
number of characters in the string.
lpDx
Points to an
optional array of values that indicate the distance between origins of adjacent
character cells. For example, lpDx[i] logical units separate the
origins of character cell i and character cell i + 1.
Return Values
If the string
is drawn, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError
Remarks
The current
text-alignment settings for the specified device context determine how the
reference point is used to position the text. The text-alignment settings are
retrieved by calling the GetTextAlign
If the lpDx
parameter is NULL, the ExtTextOut function uses the default spacing
between characters. The character-cell origins and the contents of the array
pointed to by the lpDx parameter are given in logical units. A
character-cell origin is defined as the upper-left corner of the character
cell.
By default,
the current position is not used or updated by this function. However, an
application can call the SetTextAlign function with the fMode
parameter set to TA_UPDATECP to permit Windows to use and update the current
position each time the application calls ExtTextOut for a specified
device context. When this flag is set, Windows ignores the X and Y
parameters on subsequent ExtTextOut calls.
See Also