CDC::GetCharABCWidths

Retrieves the widths of consecutive characters in a specified range from the current TrueType font.

BOOL GetCharABCWidths( 
   UINT nFirstChar, 
   UINT nLastChar, 
   LPABC lpabc  
) const; 
BOOL GetCharABCWidths( 
   UINT nFirstChar, 
   UINT nLastChar, 
   LPABCFLOAT lpABCF  
) const;

Parameters

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

  • nLastChar
    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 nFirstChar and nLastChar parameters.

  • lpABCF
    Points to an application-supplied buffer with an array of ABCFLOAT structures to receive the character widths when the function returns. The widths returned by this function are in the IEEE floating-point format.

Return Value

Nonzero if the function is successful; otherwise 0.

Remarks

The widths are returned in logical units. This function succeeds only with TrueType fonts.

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 member 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 create a font whose height (as specified in the lfHeight member of the LOGFONT structure) is equal to the value stored in the ntmSizeEM member of the NEWTEXTMETRIC structure. (The value of the ntmSizeEM member can be retrieved by calling the EnumFontFamilies Windows 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 Windows function.

Requirements

Header: afxwin.h

See Also

Reference

CDC Class

Hierarchy Chart

CDC::GetCharWidth

GetCharABCWidths

GetCharABCWidthsFloat

GetCharWidthFloat