GetTabbedTextExtentA 関数 (winuser.h)

GetTabbedTextExtent 関数は、文字列の幅と高さを計算します。 文字列に 1 つ以上のタブ文字が含まれている場合、文字列の幅は、指定したタブ位置に基づいています。 GetTabbedTextExtent 関数は、現在選択されているフォントを使用して文字列のディメンションを計算します。

構文

DWORD GetTabbedTextExtentA(
  [in] HDC       hdc,
  [in] LPCSTR    lpString,
  [in] int       chCount,
  [in] int       nTabPositions,
  [in] const INT *lpnTabStopPositions
);

パラメーター

[in] hdc

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

[in] lpString

文字列へのポインター。

[in] chCount

テキスト文字列の長さ。 ANSI 関数の場合は BYTE カウントであり、Unicode 関数の場合は WORD カウントです。 ANSI 関数の場合、SBCS コード ページの文字はそれぞれ 1 バイトになりますが、DBCS コード ページのほとんどの文字は 2 バイトになります。Unicode 関数の場合、現在定義されているほとんどの Unicode 文字 (Basic 多言語プレーン (BMP) の文字) は 1 つの WORD で、Unicode サロゲートは 2 つの WORD です。

[in] nTabPositions

lpnTabStopPositions パラメーターが指す配列内のタブ位置の数。

[in] lpnTabStopPositions

タブ位置を含む配列へのポインター (デバイス単位)。 タブ位置は昇順で並べ替える必要があります。最小の x 値は、配列内の最初の項目である必要があります。

戻り値

関数が成功した場合、戻り値は論理単位での文字列の次元です。 高さは高い単語で、幅は下位ワードにあります。

関数が失敗した場合、戻り値は 0 です。 hDC が無効で、nTabPositions が 0 未満の場合、GetTabbedTextExtent は失敗します。

解説

現在のクリッピング領域は 、GetTabbedTextExtent 関数によって返される幅と高さに影響しません。

一部のデバイスでは通常のセル配列に文字が配置されないため (つまり、文字をカーニングします)、文字列内の文字のエクステントの合計が文字列の範囲と等しくない可能性があります。

nTabPositions パラメーターが 0 で lpnTabStopPositions パラメーターが NULL の場合、タブは平均文字幅の 8 倍に拡張されます。

nTabPositions が 1 の場合、タブ位置は、lpnTabStopPositions がポイントする配列の最初の値で指定された距離で区切られます。

注意

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

要件

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

関連項目

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

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

GetTextExtentPoint32

TabbedTextOut