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