问一个段落排版问题,期待……

来源:互联网 发布:租车网络平台如何盈利 编辑:程序博客网 时间:2024/05/14 12:28
怎样用richedit或者memo来实现段落的两端对齐???我找过相关文章,说用SetTextJustification可以,可我test了很久都没成功,望成功人士告知,谢谢!SetTextJustification函数说明如下: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参数传递零值,然后调用这个函数
原创粉丝点击