CDC::SetTextJustification
文字列内のブレーク文字にスペースを追加します。
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