GetCharABCWidthsA function (wingdi.h)
The GetCharABCWidths 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.
Syntax
BOOL GetCharABCWidthsA(
[in] HDC hdc,
[in] UINT wFirst,
[in] UINT wLast,
[out] LPABC lpABC
);
Parameters
[in] hdc
A handle to the device context.
[in] wFirst
The first character in the group of consecutive characters from the current font.
[in] wLast
The last character in the group of consecutive characters from the current font.
[out] lpABC
A 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.
Return value
If the function succeeds, the return value is nonzero
If the function fails, the return value is zero.
Remarks
The TrueType rasterizer provides ABC character spacing after a specific point size has been selected. A spacing is the distance added to the current position before placing the glyph. B spacing is the width of the black part of the glyph. C spacing is the distance added to the current position to provide white space to the right of the glyph. The total advanced width is specified 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 a OUTLINETEXTMETRIC structure. This value can be retrieved by calling the GetOutlineTextMetrics function.
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 GetCharWidth function.
Note
The wingdi.h header defines GetCharABCWidths as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps only] |
Minimum supported server | Windows 2000 Server [desktop apps only] |
Target Platform | Windows |
Header | wingdi.h (include Windows.h) |
Library | Gdi32.lib |
DLL | Gdi32.dll |