GetTextExtentPoint32W 関数 (wingdi.h)

GetTextExtentPoint32 関数は、指定した文字列の幅と高さを計算します。

構文

BOOL GetTextExtentPoint32W(
  [in]  HDC     hdc,
  [in]  LPCWSTR lpString,
  [in]  int     c,
  [out] LPSIZE  psizl
);

パラメーター

[in] hdc

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

[in] lpString

テキスト文字列を指定するバッファーへのポインター。 c パラメーターは文字列の長さを指定するため、文字列を null で終える必要はありません。

[in] c

lpStringが指す文字列の長さ

[out] psizl

文字列の次元を論理単位で受け取る SIZE 構造体へのポインター。

戻り値

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

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

注釈

GetTextExtentPoint32 関数は、現在選択されているフォントを使用して文字列のディメンションを計算します。 幅と高さは論理単位で計算され、クリッピングは考慮しません。

一部のデバイスではカーニング文字があるため、文字列内の文字のエクステントの合計が文字列の範囲と等しくない場合があります。

計算される文字列の幅には、 SetTextCharacterExtra 関数によって設定された文字間の間隔と 、SetTextJustification によって設定された理由が考慮されます。 これは、画面に表示する場合と印刷する場合の両方に当てはまります。 ただし、extTextOutlpDx が設定されている場合、GetTextExtentPoint32 では文字間の間隔または理由は考慮されません。 さらに、EMF の場合、印刷結果では常に文字間の間隔と理由の両方が考慮されます。

画面に表示されるテキストを処理する場合、計算される文字列の幅には 、SetTextCharacterExtra 関数によって設定された文字間の間隔と 、SetTextJustification によって設定された理由が考慮されます。 ただし、extTextOutlpDx が設定されている場合、GetTextExtentPoint32 では文字間の間隔または理由は考慮されません。 ただし、EMF で印刷する場合:

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

GetTextExtentPoint32 では、テキスト文字列の高さを計算するときに、"\n" (改行) または "\r\n" (復帰と改行) の文字は考慮されません。

例については、「 同じ行に異なるフォントからテキストを描画する」を参照してください。

注意

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

要件

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

こちらもご覧ください

ExtTextOut

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

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

SIZE

SetTextCharacterExtra

SetTextJustification