<Return[G]><Top>

GetCharABCWidthsI

Declare Function Api_GetCharABCWidthsI& Lib "gdi32" Alias "GetCharABCWidthsI" (ByVal hDC&, ByVal uint&, ByVal uint&, ByRef lpword%, ByRef lpabc As ABC)

Declare Function GetCharABCWidthsI Lib "gdi32" Alias "GetCharABCWidthsI" (ByVal hdc As Long, ByVal uint As Long, ByVal uint As Long, ByRef lpword As Integer, ByRef lpabc As ABC) As Long

現在の TrueType フォントで与えられた範囲にある、連続したグリフインデックスの幅を論理単位で取得する。この関数は TrueType フォント以外に対しては失敗する。

パラメータ
hdc
    デバイスコンテキストのハンドルを指定する。
giFirst
    現在のフォントで、連続したグリフインデックス群中の最初のグリフインデックスを指定する。このパラメータは pgi パラメータが NULL の場合

    にだけ使われる。
cgi
    グリフインデックスの数を指定する。
pgi
    グリフインデックスが入る配列へのポインタを指定する。このパラメータが NULL の場合、代わりに giFirst パラメータが使われる。cgi パラ

    メータは、この配列内のグリフインデックスの数を指定する。
lpabc
    関数が戻るときに文字幅を受け取る ABC 構造体の配列へのポインタを指定する。この配列には、少なくとも cgi パラメータで指定されたグ

    リフインデックスと同じ数の ABC 構造体がなければならない。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    TrueType ラスタライザは、特定のポイントサイズが選択された後で ABC の文字間隔を提供する。A 間隔はグリフを置く前にカレントポジショ

    ンに追加する距離である。B 間隔はグリフの黒い部分の幅である。C 間隔はグリフの右側に空白部分を加えるためにカレントポジションに追

    加する距離である。総送り幅は A+B+C で求められる。
    GetCharABCWidths 関数がある文字に対して取得した A または C 幅が負の場合、その文字には欠損または張り出しがある。
    ABC 幅をフォントデザイン単位に変換するには、アプリケーションは OUTLINETEXTMETRIC 構造体の otmEMSquare メンバに格納され

    ている値を使う。この値は、GetOutlineTextMetrics 関数を呼び出して取得することができる。
    既定文字の ABC 幅は現在選択されているフォントの範囲外の文字に対して使われる。
    TrueType 以外のフォントでグリフインデックスの幅を取得するには、アプリケーションは GetCharWidthI 関数を使う必要がある。