プラットフォーム SDK
GetCharABCWidthsFloat
現在のフォントから指定された範囲内にある、連続した文字の幅を論理単位で取得します。
BOOL GetCharABCWidthsFloat(
HDC hdc, // デバイスコンテキストのハンドル
UINT iFirstChar, // 照会する範囲内の最初の文字
UINT iLastChar, // 照会する範囲内の最後の文字
LPABCFLOAT lpABCF // 文字幅の構造体へのポインタ
);
パラメータ
- hdc
- デバイスコンテキストのハンドルを指定します。
- iFirstChar
- ABC 幅を求める、連続した文字群中の最初の文字のコード点を指定します。
- iLastChar
- ABC 幅を求める、連続した文字群中の最後の文字のコード点を指定します。この範囲は包含的です。指定された最後の文字が指定された最初の文字よりも前にある場合は、エラーが返ります。
- lpABCF
- 関数が戻るときに文字幅を受け取る ABCFLOAT 構造体の配列を持つ、アプリケーション定義のバッファへのポインタを指定します。
戻り値
関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。
Windows NT/2000:拡張エラーコードを取得するには、GetLastError 関数を使います。
解説
GetCharABCWidths 関数は TrueType フォントだけの文字幅を返しますが、 GetCharABCWidthsFloat 関数はあらゆるフォントの文字幅を取得します。この関数では、幅は IEEE の浮動小数点形式で返されます。
現在のワールドからデバイスへの変換が識別されていない場合は、デバイス空間の値に整数が対応しても、その幅は整数以外の値で返される場合があります。
A 間隔はグリフを置く前にカレントポジションに追加する距離です。B 間隔はグリフの黒い部分の幅です。C 間隔はグリフの右側に空白部分を加えるためにカレントポジションに追加する距離です。 総送り幅は A+B+C で求められます。
ABC の間隔は選択されたフォントの文字ベースラインに沿って測定されます。
既定文字の ABC 幅は現在選択されているフォントの範囲外の文字に対して使われます。
対応情報
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:対応していません
ヘッダー:wingdi.h 内で宣言
インポートライブラリ:gdi32.lib を使用
Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装
参照
、GetCharABCWidths、GetCharWidth、GetCharWidthFloat