SetTextJustification

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

SetTextJustification hdc, extra, count

hdc : [intptr] デバイスコンテキストへのハンドル。
extra : [int] テキスト行に追加する追加スペースの合計(論理単位)。現在のマッピングモードが MM_TEXT でない場合、nBreakExtra パラメータで識別される値は変換され、最も近いピクセルに丸められる。
count : [int] 行内のブレーク文字の数。

(プラグイン / モジュール : gdi32.dll)

解説

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

[戻り値]
関数が成功した場合、戻り値は非ゼロである。関数が失敗した場合、戻り値はゼロである。

[備考]
ブレーク文字は通常スペース文字(ASCII
32)であるが、フォントによって別の文字として定義されることもある。フォントのブレーク文字を取得するには GetTextMetrics
関数を使用できる。TextOut
関数は、指定された追加スペースを行内のブレーク文字に均等に配分する。GetTextExtentPoint32 関数は常に
SetTextJustification 関数と共に使用される。GetTextExtentPoint32
関数は、位置合わせ前の指定行の幅を計算するときに、位置合わせを考慮することもあれば、しないこともある。詳細は
GetTextExtentPoint32 を参照。適切な nBreakExtra
値を計算する前に、この幅を知る必要がある。SetTextJustification
は、異なるフォントで複数の文字列を含む行の位置合わせに使用できる。この場合、各文字列を個別に位置合わせしなければならない。位置合わせ中に丸め誤差が発生することがあるため、システムは現在の誤差値を定義する実行時誤差項を保持する。複数の実行を含む行を位置合わせする場合、GetTextExtentPoint
は次の実行の範囲を計算する際にこの誤差項を自動的に使用し、TextOut
が新しい実行に誤差を混ぜ込めるようにする。各行が位置合わせされた後、この誤差項は次の行に組み込まれないようにクリアしなければならない。項は
nBreakExtra を 0 に設定して SetTextJustification を呼び出すことでクリアできる。

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs