This function retrieves the widths, in logical units, of consecutive characters in a specified range from the current TrueType font. This function succeeds only with TrueType fonts.
BOOL GetCharABCWidths( HDC hdc, UINT uFirstChar, UINT uLastChar, LPABC lpabc );
[in] Handle to the device context (DC).
[in] Specifies the first character in the group of consecutive characters from the current font.
[in] Specifies the last character in the group of consecutive characters from the current font.
[out] Pointer to an array of ABC structures that receives the character widths, in logical units. This array must contain at least as many ABC structures as there are characters in the range specified by the uFirstChar and uLastChar parameters.
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.
To get extended error information, call GetLastError.
The TrueType rasterizer provides ABC character spacing after a specific point size has been selected.
The total width of a character is the summation of the A, B, and C spaces. A spacing is the distance to add to the current position before drawing the character glyph. B spacing is the width of the drawn portion of the glyph. C spacing is the distance added to the current position to provide white space to the right of the glyph.
When the GetCharABCWidths function retrieves negative A or C widths for a character, that character includes underhangs or overhangs.
The ABC widths of the default character are used for characters outside the range of the currently selected font.
To retrieve the widths of characters in non-TrueType fonts, applications should use the GetCharWidth32 function.