TabbedTextOut

  LONG TabbedTextOut(hdc, x, y, lpString, nCount, nTabPositions, lpnTabStopPositions, nTabOrigin)    
  HDC hdc; /* device-context handle */
  int x; /* x-coordinate of starting position */
  int y; /* y-coordinate of starting position */
  LPTSTR lpString; /* pointer to string */
  int nCount; /* number of characters in string */
  int nTabPositions; /* number of tabs in array */
  LPINT lpnTabStopPositions; /* array for tab positions */
  int nTabOrigin; /* x-coordinate for tab expansion */

The TabbedTextOut function writes a character string at a specified location, expanding tabs to the values specified in an array of tab-stop positions. Text is written in the currently selected font.

Parameters

hdc

Identifies the device context.

x

Specifies the x-coordinate of the starting point of the string (in logical units).

y

Specifies the y-coordinate of the starting point of the string (in logical units).

lpString

Points to the character string to draw.

nCount

Specifies the number of characters in the string.

nTabPositions

Specifies the number of values in the array of tab-stop positions.

lpnTabStopPositions

Points to an array containing the tab-stop positions (in device units). The tab stops must be sorted in increasing order; the smallest x-value should be the first item in the array.

nTabOrigin

Specifies the x-coordinate of the starting position from which tabs are expanded (in logical units).

Return Value

The return value specifies the dimensions of the string (in logical units). The height is in the high-order word and the width is in the low-order word.

Comments

The TabbedTextOut function may be used as either a wide-character function (where text arguments must use Unicode) or an ANSI function (where text arguments must use characters from the Windows 3.x character set installed).

If the nTabPositions parameter is zero and the lpnTabStopPositions parameter is NULL, tabs are expanded to eight times the average character width.

If nTabPositions is 1, the tab stops are separated by the distance specified by the first value in the lpnTabStopPositions array.

If the lpnTabStopPositions array contains more than one value, a tab stop is set for each value in the array, up to the number specified by nTabPositions.

The nTabOrigin parameter allows an application to call the TabbedTextOut function several times for a single line. If the application calls TabbedTextOut more than once with the nTabOrigin set to the same value each time, the function expands all tabs relative to the position specified by nTabOrigin.

By default, the current position is not used or updated by the TabbedTextOut function. If an application needs to update the current position when it calls TabbedTextOut, the application can call the SetTextAlign function with the wFlags parameter set to TA_UPDATECP. When this flag is set, Windows ignores the x and y parameters on subsequent calls to the TabbedTextOut function, using the current position instead.

See Also

GetTabbedTextExtent, SetTextAlign, TextOut, DrawText, GrayString