GetTextExtentExPointI 関数 (wingdi.h)

GetTextExtentExPointI 関数は、指定したスペース内に収まる指定した文字列内の文字数を取得し、それらの各文字のテキスト範囲を配列に入力します。 (テキスト範囲は、スペースの先頭とスペースに収まる文字との間の距離です)。この情報は、ワードラッピング計算に役立ちます。

構文

BOOL GetTextExtentExPointI(
  [in]  HDC    hdc,
  [in]  LPWORD lpwszString,
  [in]  int    cwchString,
  [in]  int    nMaxExtent,
  [out] LPINT  lpnFit,
  [out] LPINT  lpnDx,
  [out] LPSIZE lpSize
);

パラメーター

[in] hdc

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

[in] lpwszString

エクステントを取得するグリフ インデックスの配列へのポインター。

[in] cwchString

pgiIn パラメーターが指す配列内のグリフの数。

[in] nMaxExtent

書式設定された文字列の最大許容幅 (論理単位)。

[out] lpnFit

nMaxExtent パラメーターで指定されたスペースに収まる最大文字数のカウントを受け取る整数へのポインター。 lpnFit パラメーターが NULL の場合、nMaxExtent パラメーターは無視されます。

[out] lpnDx

部分グリフエクステントを受け取る整数の配列へのポインター。 配列内の各要素は、グリフ インデックス配列の先頭と 、nMaxExtent パラメーターで指定されたスペースに収まるグリフの 1 つの間の距離を論理単位で指定します。 この配列には 、cgi パラメーターで指定されたグリフ インデックスと同数以上の要素が必要ですが、関数は lpnFit パラメーターで指定された数のグリフ インデックスに対してのみエクステントを配列に入力します。 lpnFitNULL の場合、関数は文字列の部分的な幅を計算しません。

[out] lpSize

グリフ インデックス配列の次元を論理単位で受け取る SIZE 構造体へのポインター。 この値を NULL にすることはできません。

戻り値

関数が成功すると、戻り値は 0 以外になります。

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

注釈

lpnFit パラメーターと alpDx パラメーターの両方が NULL の場合、GetTextExtentExPointI 関数の呼び出しは、GetTextExtentPointI 関数の呼び出しと同じです。

この関数は、テキスト範囲を返すとき、テキストが水平、つまりエスケープメントが常に 0 であることを前提としています。 これは、テキストの水平方向と垂直方向の両方の測定値に当てはまります。 0 以外のエスケープメントを指定するフォントを使用する場合でも、この関数はテキスト範囲を計算するときに角度を使用しません。 アプリでは、明示的に変換する必要があります。 ただし、グラフィックス モードが GM_ADVANCED に設定されていて、文字の向きが印刷方向から 90 度の場合、この関数が返す値はこの規則に従いません。 特定の文字列の文字の向きと印刷の向きが一致する場合、この関数は SIZE 構造体の文字列の次元を { cx : 116, cy : 18 } として返します。 同じ文字列に対して文字の向きと印刷の向きが 90 度離れている場合、この関数は SIZE 構造体の文字列の次元を { cx : 18, cy : 116 } として返します。

要件

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

こちらもご覧ください

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

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

GetTextExtentPoint

SIZE