windows_programming_notes.nbk: Home | Index | Next Page: The dialog manager, part 1: Warm-ups | Previous Page: TCN_SELCHANGING
TextOut
The TextOut function writes a character string at the specified location, using the currently selected font, background color, and text color.
BOOL TextOut(
HDC hdc, // handle to DC
int nXStart, // x-coordinate of starting position
int nYStart, // y-coordinate of starting position
LPCTSTR lpString, // character string
int cbString // number of characters
);
Parameters
hdc
Handle to the device context.
nXStart
Specifies the logical x-coordinate of the reference point that the system uses to align the string.
nYStart
Specifies the logical y-coordinate of the reference point that the system uses to align the string.
lpString
Pointer to the string to be drawn. The string does not need to be zero-terminated, since cbString specifies the length of the string.
cbString
Specifies the length of the string. For the ANSI function it is a BYTE count and for the Unicode function it is a WORD count. Note that for the ANSI function, characters in SBCS code pages take one byte each while most characters in DBCS code pages take two bytes; for the Unicode function, most currently defined Unicode characters (those in the Basic Multilingual Plane (BMP)) are one WORD while Unicode surrogates are two WORDs.
Windows 95/98/Me: This value may not exceed 8192.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.
Windows NT/2000 or later: To get extended error information, call GetLastError.
Remarks
Although not true in general, Windows 95/98 supports the Unicode version of this function as well as the ANSI version.
The interpretation of the reference point depends on the current text-alignment mode. An application can retrieve this mode by calling the GetTextAlign function; an application can alter this mode by calling the SetTextAlign function.
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 the system to use and update the current position each time the application calls TextOut for a specified device context. When this flag is set, the system ignores the nXStart and nYStart parameters on subsequent TextOut calls.
When the TextOut function is placed inside a path bracket, the system
generates a path for the TrueType text that includes each character plus
its character box. The region generated is the character box minus the
text, rather than the text itself. You can obtain the region enclosed by
the outline of the TrueType text by setting the background mode to
transparent before placing the TextOut function in the path bracket.
Following is sample code that demonstrates this procedure.
// Obtain the window's client rectangle
GetClientRect(hwnd, &r);
// THE FIX: by setting the background mode
// to transparent, the region is the text itself
// SetBkMode(hdc, TRANSPARENT);
// Bracket begin a path
BeginPath(hdc);
// Send some text out into the world
TextOut(hdc, r.left, r.top, "Defenestration can be hazardous", 4);
// Bracket end a path
EndPath(hdc);
// Derive a region from that path
SelectClipPath(hdc, RGN_AND);
// This generates the same result as SelectClipPath()
// SelectClipRgn(hdc, PathToRegion(hdc));
// Fill the region with grayness
FillRect(hdc, &r, GetStockObject(GRAY_BRUSH));
For examples, see Enumerating the Installed Fonts.
Requirements
Windows NT/2000 or later: Requires Windows NT 3.1 or later.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Wingdi.h; include Windows.h.
Library: Use Gdi32.lib.
Unicode: Implemented as Unicode and ANSI versions on all platforms.
See Also
windows_programming_notes.nbk: Home | Index | Next Page: The dialog manager, part 1: Warm-ups | Previous Page: TCN_SELCHANGING
Notebook exported on Monday, 7 July 2008, 18:56:50 PM Eastern Daylight Time