GetCharABCWidths

  BOOL GetCharABCWidths(hdc, uFirstChar, uLastChar, lpabc)    
  HDC hdc; /* device-context handle */
  UINT uFirstChar; /* first character in range to query */
  UINT uLastChar; /* last character in range to query */
  LPABC lpabc; /* pointer to ABC structure for widths */

The GetCharABCWidths function retrieves the widths of consecutive characters in a specified range from the current TrueType font. The widths are returned in logical units. This function succeeds only with TrueType fonts.

Parameters

hdc

Identifies the device context.

uFirstChar

Specifies the first character in the range of characters from the current font for which character widths are returned.

uLastChar

Specifies the last character in the range of characters from the current font for which character widths are returned.

lpabc

Points to an array of ABC structures that receive the character widths when the function returns. This array must contain at least as many ABC structures as there are characters in the range specified by the uFirstChar and uLastChar parameters.

Return Value

The return value is TRUE if the function was successful, or FALSE if an error occurred. Use the GetLastError function to obtain extended error information.

Comments

The TrueType rasterizer provides ABC character spacing after a specific point size has been selected. “A” spacing is the distance that is added to the current position before placing the glyph. “B” spacing is the width of the black part of the glyph. “C” spacing is added to the current position to account for the white space to the right of the glyph. The total advanced width is given by A+B+C.

When the GetCharABCWidths function retrieves negative “A” or “C” widths for a character, that character includes underhangs or overhangs.

To convert the ABC widths to font design units, an application should use the value stored in the otmEMSquare member of the OUTLINETEXTMETRIC structure. This value can be retrieved by calling the GetOutlineTextMetrics function.

The ABC widths of the default character are used for characters that are outside the range of the currently selected font.

To retrieve the widths of characters in non-TrueType fonts, applications should use the GetCharWidth function.

See Also

GetCharWidth, GetOutlineTextMetrics