次の方法で共有


CDC::GetCharABCWidths

現在の TrueType フォントから、指定された範囲の連続した文字の幅を取得します。

BOOL GetCharABCWidths(
   UINT nFirstChar,
   UINT nLastChar,
   LPABC lpabc 
) const;
BOOL GetCharABCWidths(
   UINT nFirstChar,
   UINT nLastChar,
   LPABCFLOAT lpABCF 
) const;

パラメーター

  • nFirstChar
    文字幅が返す現在のフォントから、文字の範囲の最初の文字を指定します。

  • nLastChar
    文字幅が返す現在のフォントからの文字範囲内の最後の文字を指定します。

  • lpabc
    関数から制御が戻るときの文字幅を受け取る ABC の構造体の配列へのポインター。この配列は nFirstChar と nLastChar のパラメーターで指定されている範囲に文字が含まれていると同様に少なくとも ABC の多くの構造体を含める必要があります。

  • lpABCF
    関数から制御が戻るときの文字幅を受け取る ABCFLOAT の構造体の配列を持つアプリケーション、指定されたバッファーへのポインター。この関数によって返される幅は、IEEE 浮動小数点形式になります。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

幅 (論理単位で返します。この関数は、TrueType フォントにだけ成功します。

TrueType のラスタライザーは、特定のポイントのサイズが選択されたら「」のアルファベット文字間隔を指定します。"」間隔はグリフを設定する前の現在位置に追加された距離です。"間隔の設定は 12 B」グリフの黒いパーツの幅です。"間隔の設定は C」現在位置にグリフの右側に空白を示すために追加されます。高度な合計幅 12、A + B + C 与えられます。

GetCharABCWidths のメンバー関数と負の文字の「A」、「C」の幅を取得する場合、その文字は underhangs か突出部分が含まれます。

フォントのデザイン単位にアルファベットの幅を変換するには、アプリケーションは高さ ( LOGFONT の構造体の lfHeight のメンバーで指定された) NEWTEXTMETRIC の構造体の ntmSizeEM のメンバーに格納されている値と同じフォントを作成する必要があります。( ntmSizeEM のメンバーの値が EnumFontFamilies Windows 関数の呼び出しによって取得できます)。

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

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

必要条件

ヘッダー: afxwin.h

参照

関連項目

CDC クラス

階層図

CDC::GetCharWidth

GetCharABCWidths

GetCharABCWidthsFloat

GetCharWidthFloat