SetTextJustification

SetTextJustification

VB声明

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

说明

通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理

返回值

Long,非零表示成功,零表示失败。会设置GetLastError

参数表

参数

类型及说明

hdc

Long,设备场景的句柄

nBreakExtra

Long,描绘时欲添加到字串的额外空间大小

nBreakCount

Long,用于分散额外空间的分隔字符的数量

在VB里使用

如使用了这个函数,要确定针对VB窗体或控件清除错误条件

注解

额外空间由行内各个分隔字符分摊。这里的“分隔字符”是由特定的字体定义的,通常都是空格字符。可用GetTextMetrics函数了解一种字体采用的分隔字符是什么。对文本进行两端对齐排列的时候,通常需要采取的操作步骤如下:

1、用GetTextExtentPoint32这个API函数计算字串占据的显示范围

2、决定为了使一个行两端对齐,需要加入多少额外的空间(采用逻辑坐标)。这个空间(或距离)通常等于右页边距减去文本的水平“范围”

3、计算一行文本中采用多少个间隔字符(通常是空格)

4、将额外空间以及间隔字符的数量作为参数,调用SetTextJustification函数

5、调用文本绘图(显示)函数

这个函数在内部维持着一种错误条件,用于纠正对齐过程中出现的误差。这样一来,我们就可以区分出行内不同部分间的额外间距(如行内使用了多种字体)。具体的方法是将行分割成几个段,然后为每一段都调用这个函数。对于一个新行,必须清除这个错误条件,方法是向nBreakExtra和nBreakCount参数传递零值,然后调用这个函数

Top