GetCharABCWidthsI 関数 (wingdi.h)
GetCharABCWidthsI 関数は、現在の TrueType フォントから、指定した範囲内の連続するグリフ インデックスの幅を論理単位で取得します。 この関数は TrueType フォントでのみ成功します。
構文
BOOL GetCharABCWidthsI(
[in] HDC hdc,
[in] UINT giFirst,
[in] UINT cgi,
[in] LPWORD pgi,
[out] LPABC pabc
);
パラメーター
[in] hdc
デバイス コンテキストへのハンドル。
[in] giFirst
現在のフォントからの連続するグリフ インデックスのグループ内の最初のグリフ インデックス。 このパラメーターは、 pgi パラメーターが NULL の場合にのみ使用 されます。
[in] cgi
グリフ インデックスの数。
[in] pgi
グリフ インデックスを含む配列へのポインター。 このパラメーターが NULL の場合は、 代わりに giFirst パラメーターが使用されます。 cgi パラメーターは、この配列内のグリフ インデックスの数を指定します。
[out] pabc
文字幅を受け取る ABC 構造体の配列へのポインター (論理単位)。 この配列には、cgi パラメーターで指定されたグリフ インデックスと同数以上の ABC 構造体が含まれている必要があります。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。
解説
TrueType ラスタライザーは、特定のポイント サイズが選択された後に ABC 文字間隔を提供します。 間隔は、グリフを配置する前に現在の位置に追加される距離です。 B の間隔は、グリフの黒い部分の幅です。 C の間隔は、グリフの右側に空白を提供するために現在の位置に追加される距離です。 拡張幅の合計は、A +B+C で指定します。
GetCharABCWidthsI 関数が文字の負の A または C 幅を取得する場合、その文字にはアンダーハングまたはオーバーハングが含まれます。
ABC の幅をフォントデザイン単位に変換するには、アプリケーションで OUTLINETEXTMETRIC 構造体の otmEMSquare メンバーに格納されている値を使用する必要があります。 この値は、 GetOutlineTextMetrics 関数を呼び出すことで取得できます。
既定の文字の ABC 幅は、現在選択されているフォントの範囲外の文字に使用されます。
TrueType 以外のフォントでグリフ インデックスの幅を取得するには、アプリケーションで GetCharWidthI 関数を使用する必要があります。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wingdi.h (Windows.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |