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