A version of this page is also available for

Windows Embedded CE 6.0 R3


This function draws a character string by using the currently selected font. You can provide an optional rectangle that ExtTextOut can use for clipping, opaquing, or both.


BOOL ExtTextOut(
  HDC hdc, 
  int X, 
  int Y, 
  UINT fuOptions, 
  const RECT* lprc, 
  LPCTSTR lpString, 
  UINT cbCount, 
  const int* lpDx


  • hdc
    [in] Handle to the device context (DC).
  • X
    [in] Integer that specifies the logical x-coordinate of the reference point used to position the string.
  • Y
    [in] Integer that specifies the logical y-coordinate of the reference point used to position the string.
  • fuOptions
    [in] Unsigned integer that specifies how to use the application-defined rectangle. The following table shows the possible values, which you can combine.

    Value Description


    Clips the text to the rectangle.


    Uses the current background color to fill the rectangle.


    If this value is specified and a Hebrew or Arabic font is selected into the device context, the string is output by 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.

  • lprc
    [in] Long pointer to an optional RECT structure that specifies the dimensions of a rectangle that ExtTextOut uses for clipping, opaquing, or both.
  • lpString
    [in] Long pointer to the character string that you want to draw. The string does not need to be zero-terminated because cbCount specifies the length of the string.
  • cbCount
    [in] Unsigned integer that specifies the number of characters in the string.
  • lpDx
    [in] Long pointer to an optional array of values that indicate the distance between origins of adjacent character cells. For example, lpDx[i] indicates the number of logical units separate the origins of character cell i and character cell i + 1.

Return Value

Nonzero indicates that ExtTextOut drew the string. Zero indicates failure. To get extended error information, call GetLastError.


The current text–alignment settings for the specified device context determine how ExtTextOut uses the reference point to position the text.

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 the upper-left corner of the character cell.

By default, ExtTextOut does not use or update the current position.


Header windows.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later

See Also



Other Resources