GetCharABCWidthsW 関数 (wingdi.h)

GetCharABCWidths 関数は、現在の TrueType フォントから、指定した範囲内の連続する文字の幅を論理単位で取得します。 この関数は TrueType フォントでのみ成功します。

構文

BOOL GetCharABCWidthsW(
  [in]  HDC   hdc,
  [in]  UINT  wFirst,
  [in]  UINT  wLast,
  [out] LPABC lpABC
);

パラメーター

[in] hdc

デバイス コンテキストへのハンドル。

[in] wFirst

現在のフォントからの連続する文字のグループ内の最初の文字。

[in] wLast

現在のフォントの連続する文字のグループ内の最後の文字。

[out] lpABC

文字幅を受け取る ABC 構造体の配列へのポインター (論理単位)。 この配列には、uFirstChar パラメーターと uLastChar パラメーターで指定された範囲内の文字と同数以上の ABC 構造体が含まれている必要があります。

戻り値

関数が成功した場合、戻り値は 0 以外です

関数が失敗した場合は、0 を返します。

解説

TrueType ラスタライザーは、特定のポイント サイズが選択された後に ABC 文字間隔を提供します。 間隔は、グリフを配置する前に現在の位置に追加される距離です。 B の間隔は、グリフの黒い部分の幅です。 C の間隔は、グリフの右側に空白を提供するために現在の位置に追加される距離です。 拡張幅の合計は、A +B+C で指定します。

GetCharABCWidths 関数が文字の負の A または C 幅を取得する場合、その文字にはアンダーハングまたはオーバーハングが含まれます。

ABC の幅をフォントデザイン単位に変換するには、アプリケーションで OUTLINETEXTMETRIC 構造体の otmEMSquare メンバーに格納されている値を使用する必要があります。 この値は、 GetOutlineTextMetrics 関数を呼び出すことで取得できます。

既定の文字の ABC 幅は、現在選択されているフォントの範囲外の文字に使用されます。

TrueType 以外のフォントで文字の幅を取得するには、アプリケーションで GetCharWidth 関数を使用する必要があります。

Note

wingdi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetCharABCWidths を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h (Windows.h を含む)
Library Gdi32.lib
[DLL] Gdi32.dll

関連項目

ABC

フォント関数とテキスト関数

フォントとテキストの概要

GetCharWidth

GetOutlineTextMetrics

OUTLINETEXTMETRIC