精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:文本和字体函数 第三页

主题:VB API:文本和字体函数 第三页
发信人: winsy(鹰派)
整理人: winsy(2003-03-14 09:04:27), 站内信件
PolyTextOut 

VB声明 
Declare Function PolyTextOut Lib "gdi32" Alias "PolyTextOutA" (ByVal hdc As Long, pptxt As POLYTEXT, cStrings As Long) As Long 
说明 
描绘一系列字串 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,欲在其中绘图的设备场景 
pptxt POLYTEXT,指定POLYTEXT结构数组中的第一个条目。该结构对要描绘字串的位置及内容进行了说明 
cStrings Long,pptxt数组中的条目数量 


RemoveFontResource 

VB声明 
Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long 
说明 
从Windows系统中删除一种字体资源。如删除的字体目前正由其他应用程序使用,则并不将其立即删除 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpFileName String,一个字体资源文件的文件名 
注解 
删除一种字体资源后,注意必须调用一下API函数:
di% = SendMessageBynum(HWND_BROADCAST, WM_FONTCHANGE, X, Y)
其中,HWND_BROADCAST和WM_FONTCHANGE都是来自API32.TXT文件的常数。它的作用是通知所有Windows应用程序字体列表已发生了变化。
注意磁盘上的字体文件本身并不会由这个函数删除
 

SetMapperFlags 

VB声明 
Declare Function SetMapperFlags Lib "gdi32" Alias "SetMapperFlags" (ByVal hdc As Long, ByVal dwFlag As Long) As Long 
说明 
Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体。请参考对GetAspectRatioFilterEx函数的解释,了解进一步的情况 
返回值 
Long,字体映射标志的前一个值。GDI_ERROR表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
dwFlag Long,用ASPECT_FILTERING常数请求GDI选择与设备纵横比相符的字体 


SetTextAlign 

VB声明 
Declare Function SetTextAlign Lib "gdi32" Alias "SetTextAlign" (ByVal hdc As Long, ByVal wFlags As Long) As Long 
说明 
设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置 
返回值 
Long,前一个文本对齐标志,GDI_ERROR表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
wFlags Long,参考GetTextAlign函数的返回值列表 
在VB里使用 
针对自己修改的任何VB窗体或控件,注意确定恢复其原始的对齐排列状态。可用GetTextAlign函数了解目前的对齐方式是什么
 

SetTextCharacterExtra 

VB声明 
Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long 
说明 
描绘文本的时候,指定要在字符间插入的额外间距 
返回值 
Long,这个设备场景的前一个额外间距设置 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
nCharExtra Long,要在字符间插入的额外空间,采用设备场景的逻辑坐标系统 
在VB里使用 
如改变了这个设置,注意恢复VB窗体或控件原来的字符间距设置
 

SetTextColor 

VB声明 
Declare Function SetTextColor Lib "gdi32" Alias "SetTextColor" (ByVal hdc As Long, ByVal crColor As Long) As Long 
说明 
设置当前文本颜色。这种颜色也称为“前景色” 
返回值 
Long,文本色的前一个RGB颜色设定。CLR_INVALID表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
crColor Long,新的文本色 
在VB里使用 
如改变了这个设置,注意恢复VB窗体或控件原始的文本颜色
 

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参数传递零值,然后调用这个函数 


TabbedTextOut 

VB声明 
Declare Function TabbedTextOut Lib "user32" Alias "TabbedTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long, ByVal nTabOrigin As Long) As Long 
说明 
支持制表站的一个文本描绘函数。也请参考SetTextAlign函数 
返回值 
Long,返回字串的显示“范围”。其中,结果值的高16位代表高度,低16位代表宽度 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
x,y Long,用逻辑坐标设置的一个点,指定字体的描绘(显示)起点 
lpString String,欲描绘的字串 
nCount Long,字串中要正式描绘出来的字符数 
nTabPositions Long,lpnTabStopPositions数组中的制表站数量。如果是零,lpnTabStopPositions也应该是NULL(需要另行创建一个声明,将参数指定成 ByVal nTabPositions& )——在这种情况下,制表站会根据当前字体的平均字符宽度设置成默认的8字符间距。如nTabPositions为1,那么制表站间距就会根据lpnTabStopPositions数组的第一个条目设置 
lpnTabStopPositions Long,指定制表站位置数组中的头一个条目。这些位置用设备坐标按升序指定。如果为负数,表示文本应该右对齐制表站,而不是默认的左对齐(仅适用于Win95) 
nTabOrigin Long,指定制表站起点。如为同一行多次调用该函数,而又希望维持相同的制表起点,这个参数就显得非常重要 


TextOut 

VB声明 
Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long 
说明 
文本绘图函数。也请参考SetTextAlign 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
x,y Long,绘图的起点,采用逻辑坐标 
lpString String,欲描绘的字串 
nCount Long,字串中要描绘的字符数量 
注解 
在一个路径中,如绘图背景模式是“不透明”(opaque)——请参考SetBkMode函数,那么创建的轮廓将由字符单元格减去字符构成。如背景模式为透明,轮廓就由字符的字样本身构成
 

[关闭][返回]