次の方法で共有


CDC::GetOutputTabbedTextExtent

更新 : 2007 年 11 月

出力デバイス コンテキスト m_hDC を使用して、文字列の幅と高さを計算します。

CSize GetOutputTabbedTextExtent(
   LPCTSTR lpszString,
   int nCount,
   int nTabPositions,
   LPINT lpnTabStopPositions 
) const;
CSize GetOutputTabbedTextExtent(
   const CString& str,
   int nTabPositions,
   LPINT lpnTabStopPositions 
) const;

パラメータ

  • lpszString
    計測する文字列へのポインタ。このパラメータには、CString オブジェクトを渡すこともできます。

  • nCount
    文字列内の文字数を指定します。nCount に -1 を指定すると、関数が長さを計算します。

  • nTabPositions
    パラメータ lpnTabStopPositions が指す配列内に含まれるタブ ストップの位置の個数を指定します。

  • lpnTabStopPositions
    論理単位でタブ ストップの位置を表す、整数配列へのポインタ。各タブ ストップ位置は、昇順に配列に格納されている必要があります。最も小さい x の値が配列の最初の項目になります。バック タブは使用できません。

  • str
    計測の対象となる文字列を持つ CString オブジェクト。

戻り値

文字列の寸法 (論理単位) を CSize オブジェクトで返します。

解説

文字列に 1 つ以上のタブが含まれているときは、文字列の幅は lpnTabStopPositions に指定されたタブ ストップを基に計算されます。文字列の寸法は、現在選択されているフォントに基づいて計算されます。

現在のクリップ領域は、GetOutputTabbedTextExtent 関数が返す幅と高さに影響しません。

通常のセル配列で文字を配置しない (つまり、カーニングが実行される) デバイスもあるので、文字列内の各文字の寸法の総計と文字列の寸法が一致しないことがあります。

nTabPositions が 0 で、lpnTabStopPositions が NULL のときは、タブは 8 文字分の幅で展開されます。nTabPositions が 1 のときは、タブ ストップはパラメータ lpnTabStopPositions が指す配列内の最初の値が指定する間隔で展開されます。lpnTabStopPositions が複数の値を指すときは、タブ ストップは配列内の nTabPositions に指定された数までのそれぞれの値に設定されます。

必要条件

ヘッダー : afxwin.h

参照

参照

CDC クラス

階層図

CDC::GetTextExtent

CDC::m_hAttribDC

CDC::m_hDC

CDC::GetTabbedTextExtent

CDC::GetOutputTextExtent

CDC::TabbedTextOut

GetTabbedTextExtent

CSize クラス

その他の技術情報

CDC のメンバ