出力デバイス コンテキスト 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 に指定された数までのそれぞれの値に設定されます。
関連項目
CDC クラス階層図
CDC::GetTextExtent
CDC::m_hAttribDC
CDC::m_hDC
CDC::GetTabbedTextExtent
CDC::GetOutputTextExtent
CDC::TabbedTextOut
GetTabbedTextExtent
CSize クラス