次の方法で共有


GetCharABCWidthsA 関数 (wingdi.h)

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

構文

BOOL GetCharABCWidthsA(
  [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 関数 使用する必要があります。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wingdi.h (Windows.h を含む)
ライブラリ Gdi32.lib
DLL Gdi32.dll

関連項目

ABC を する

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

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

GetCharWidth を する

GetOutlineTextMetrics の

OUTLINETEXTMETRIC