<Return[S]><Top>

SetTextJustification

Declare Function Api_SetTextJustification& Lib "gdi32" Alias "SetTextJustification" (ByVal hDC&, ByVal nBreakExtra&, ByVal nBreakCount&)

Declare Function SetTextJustification Lib "gdi32" Alias "SetTextJustification" (ByVal hdc As Long, ByVal nBreakExtra As Long, ByVal nBreakCount As Long) As Long

システムがテキスト文字列内のブレーク文字に追加する間隔の量を指定する。間隔は、アプリケーションが TextOut 関数または ExtTextOut 関数を呼び出すときに追加される。

パラメータ
hdc
    デバイスコンテキストのハンドルを指定する。
nBreakExtra
    テキスト行に追加する間隔の総量を論理単位で指定する。現在のマッピングモードが MM_TEXT でない場合、nBreakExtra パラメータで

    指定された値は変換され、最も近いピクセル値に丸められる。
nBreakCount
    テキスト行内のブレーク文字の数を指定する。
 

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。
    Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。

 

解説
    ブレーク文字は通常空白文字(ASCII 32)であるが、フォントによっては別の文字として定義されている。

    GetTextMetrics 関数を使うと、フォントのブレーク文字を取得できる。
    TextOut 関数は、指定された間隔をその行内のブレーク文字の間で均等に分配して追加する。
    GetTextExtentPoint32 関数は、常に SetTextJustification 関数と共に使う。GetTextExtentPoint32 関数は、位置合わせの前に行の

    幅を計算する。この幅は、nBreakExtra パラメータの値を正しく計算するために、あらかじめ求めておく必要がある。
    SetTextJustification 関数は、フォントが異なる複数の文字列を含む行で位置合わせを行うために使う。この場合、各文字列で個別に位

    置合わせを行なう必要がある。
    位置合わせの際に丸めエラーが発生する場合があるため、システムは現在のエラー値を定義する実行時エラー項を記録する。

    複数の実行を含む行の位置合わせを行なう場合、GetTextExtentPoint 関数は次の実行のエクステントを計算する際に自動的にこのエラ

    ー項を使って、TextOut 関数が新しい実行にエラーを統合できるようにする。各行の位置合わせが完了した後、エラー項が次の行に取り

    込まれないように、エラー項を消去する。nBreakExtra パラメータを 0 に設定して SetTextJustification 関数を呼び出すと、エラー項は消

    去できる。