次の方法で共有


GetTextExtentPoint32A 関数 (wingdi.h)

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

構文

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

パラメーター

[in] hdc

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

[in] lpString

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

[in] c

lpStringによって指 文字列の の長さ。

[out] psizl

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

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。

備考

GetTextExtentPoint32 関数は、現在選択されているフォントを使用して文字列の次元を計算します。 幅と高さ (論理単位) は、クリッピングを考慮せずに計算されます。

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

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

画面上に表示されるテキストを処理する場合、計算される文字列の幅では、SetTextCharacterExtra 関数によって設定された文字間の間隔と、SetTextJustificationによって設定 理由が考慮されます。 ただし、lpDx が extTextOut設定されている場合、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 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wingdi.h (Windows.h を含む)
ライブラリ Gdi32.lib
DLL Gdi32.dll

関連項目

ExtTextOut を する

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

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

SIZE

SetTextCharacterExtra の

SetTextJustification の