CDC::SetTextJustification

更新 : 2007 年 11 月

文字列内のブレーク文字にスペースを追加します。

int SetTextJustification(
   int nBreakExtra,
   int nBreakCount 
);

パラメータ

  • nBreakExtra
    テキストの行に追加されるスペースの総量 (論理単位)。現在のマップ モードが MM_TEXT でないときは、このパラメータで与えられる値は、現在のマップ モードに変換され、最も近いデバイス単位に丸められます。

  • nBreakCount
    行内のブレーク文字の数。

戻り値

正常終了した場合は 1 を返します。それ以外の場合は 0 を返します。

解説

アプリケーションは、フォントのブレーク文字を取得するために GetTextMetrics メンバ関数を使うことができます。

SetTextJustification メンバ関数を呼び出した後に、(TextOut メンバ関数のような) テキスト出力関数を呼び出すと、指定された数のブレーク文字の間で指定されたスペースが均等に配分されます。ブレーク文字は、通常スペース文字 (ASCII 32) ですが、フォントごとに別の文字を定義することもできます。

GetTextExtent メンバ関数は、通常 SetTextJustification メンバ関数と共に使用されます。GetTextExtent メンバ関数は、配置をする前に、指定された行の幅を計算します。アプリケーションでは、配置後の文字列の幅から、GetTextExtent により返される値を減算することにより、nBreakExtra に指定するスペースの量を判断できます。

SetTextJustification メンバ関数は、1 つの行に複数のフォントが含まれるときの配置に使用できます。その場合、行はそれぞれの部分を個別に配置し、書き込みをして作成します。

配置の間に誤差が生じることがあるため、システムは現在の誤差を定義する誤差項目を管理します。行の配置を複数回行う場合は、GetTextExtent メンバ関数は次の配置の範囲を計算するときに、自動的にこの誤差項目を使います。誤差項目の使用によって、テキスト出力関数は次回の配置に誤差を含めることができます。

それぞれの行が配置された後は、この誤差項目が次の行に持ち込まれるのを避けるために、解除する必要があります。誤差項目は SetTextJustification メンバ関数のパラメータ nBreakExtra を 0 にして呼び出すことで解除できます。

必要条件

ヘッダー : afxwin.h

参照

参照

CDC クラス

階層図

CDC::GetMapMode

CDC::GetTextExtent

CDC::GetTextMetrics

CDC::SetMapMode

CDC::TextOut

SetTextJustification

その他の技術情報

CDC のメンバ