SetTextJustification

此頁沒有內(nèi)容條目
內(nèi)容

SetTextJustification

VB聲明

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

說明

通過指定一個文本行應(yīng)占據(jù)的額外空間,可用這個函數(shù)對文本進(jìn)行兩端對齊處理

返回值

Long,非零表示成功,零表示失敗。會設(shè)置GetLastError

參數(shù)表

參數(shù)

類型及說明

hdc

Long,設(shè)備場景的句柄

nBreakExtra

Long,描繪時欲添加到字串的額外空間大小

nBreakCount

Long,用于分散額外空間的分隔字符的數(shù)量

在VB里使用

如使用了這個函數(shù),要確定針對VB窗體或控件清除錯誤條件

注解

額外空間由行內(nèi)各個分隔字符分?jǐn)?。這里的“分隔字符”是由特定的字體定義的,通常都是空格字符。可用GetTextMetrics函數(shù)了解一種字體采用的分隔字符是什么。對文本進(jìn)行兩端對齊排列的時候,通常需要采取的操作步驟如下:

1、用GetTextExtentPoint32這個API函數(shù)計算字串占據(jù)的顯示范圍

2、決定為了使一個行兩端對齊,需要加入多少額外的空間(采用邏輯坐標(biāo))。這個空間(或距離)通常等于右頁邊距減去文本的水平“范圍”

3、計算一行文本中采用多少個間隔字符(通常是空格)

4、將額外空間以及間隔字符的數(shù)量作為參數(shù),調(diào)用SetTextJustification函數(shù)

5、調(diào)用文本繪圖(顯示)函數(shù)

這個函數(shù)在內(nèi)部維持著一種錯誤條件,用于糾正對齊過程中出現(xiàn)的誤差。這樣一來,我們就可以區(qū)分出行內(nèi)不同部分間的額外間距(如行內(nèi)使用了多種字體)。具體的方法是將行分割成幾個段,然后為每一段都調(diào)用這個函數(shù)。對于一個新行,必須清除這個錯誤條件,方法是向nBreakExtra和nBreakCount參數(shù)傳遞零值,然后調(diào)用這個函數(shù)

Top