精华区 [关闭][返回]

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

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

VB声明 
Declare Function GetFontLanguageInfo Lib "gdi32" Alias "GetFontLanguageInfo" (ByVal hdc As Long) As Long 
说明 
返回目前选入指定设备场景中的字体的信息 
返回值 
Long,如返回零,表示是简单字体;GCP_ERROR表示出错。否则,返回下述一个或多个标志: 
GCP_DBCS 双字节字符集 
GCP_DIACRITIC 字体包含了发音字符 
FLI_GLYPHS 字体包含了通常不会显示出来的字样 
GCP_GLYPHSHAPE 字体包含了特殊字符,用于字样显示由除字符值以外的其他因素决定的场合。例如显示字样由一个字符在单词中位置决定,或者显示单个“连字”,指出这是两个字符值的组合 
GCP_KASHIDA 在阿拉伯字体中使用 
GCP_LIGATE 字体包含了连字字样 
GCP_USERKERNING 字体包含了字距表 
GCP_REORDER 字体必须记录下来,以便正确显示。随同希伯来和阿拉伯字体使用 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
注解 
从这个函数返回的值可用于设置GetCharacterPlacement函数的标志
 

GetGlyphOutline 

VB声明 
Declare Function GetGlyphOutline Lib "gdi32" Alias "GetGlyphOutlineA" (ByVal hdc As Long, ByVal uChar As Long, ByVal fuFormat As Long, lpgm As GLYPHMETRICS, ByVal cbBuffer As Long, lpBuffer As Any, lpmat2 As MAT2) As Long 
说明 
取得TureType字体中构成一个字符的曲线信息。主要用于将文本转换成曲线,以及用于字体的特殊处理(比如造字程序。无论如何,都要求程序员掌握高深的字体技术)。请参考由微软发布的TureType字体规格书,其中对这个字体进行了更详细的解释 


GetKerningPairs 

VB声明 
Declare Function GetKerningPairs Lib "gdi32" Alias "GetKerningPairsA" (ByVal hdc As Long, ByVal cPairs As Long, lpkrnpair As KERNINGPAIR) As Long 
说明 
取得指定字体的字距信息 
返回值 
Long,返回的字距对数量,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
cPairs Long,KERNINGPAIR结构在数组中的数量,由lpkrnpair参数指定。如果将这个参数与lpkrnpair设置成零,可判断出字距表的大小 
lpkrnpair KERNINGPAIR,指定KERNINGPAIR结构数组中的第一个条目 
注解 
参考KERNINGPAIR
返回以后,结构会针对数组中的每个条目象下面这样设置字段:
wFirst指定一个双字符序列的第一个字符;wSecond指定第二个字符。iKernAmount字段指定指定这两个字符的字间距。
例如,假设第一个字符是"f",第二个是"i"。那么在这两个字符一个紧接一个显示出来时,字间距就是添加到默认字符间距上的一个逻辑距离。这个值通常为负,因为系统通常会令两个字符靠得更近
 

GetOutlineTextMetrics 

VB声明 
Declare Function GetOutlineTextMetrics Lib "gdi32" Alias "GetOutlineTextMetricsA" (ByVal hdc As Long, ByVal cbData As Long, lpotm As OUTLINETEXTMETRIC) As Long 
说明 
接收与TureType字体内部特征有关的详细信息。请参考微软公司发布的TureType字体规格文件,它提供了这个函数的进一步信息 


GetRasterizerCaps 

VB声明 
Declare Function GetRasterizerCaps Lib "gdi32" Alias "GetRasterizerCaps" (lpraststat As RASTERIZER_STATUS, ByVal cb As Long) As Long 
说明 
了解系统是否有能力支持可缩放的字体。利用得到的结果,可判断那种系统中是否允许使用TureType字体 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpraststat RASTERIZER_STATUS,这个结构用于装载光栅信息 
cb Long,欲复制到结构中的字符数 
注解 
结构目前的大小是6个字符,并包含在RASTERIZER_STATUS结构的第一个整数中
 


GetTabbedTextExtent 

VB声明 
Declare Function GetTabbedTextExtent Lib "user32" Alias "GetTabbedTextExtentA" (ByVal hdc As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long) As Long 
说明 
判断一个字串占据的范围,同时考虑制表站扩充的因素。也请参考TabbedTextOut函数 
返回值 
Long,低16位包含了文本宽度,采用设备场景的逻辑坐标表示。高16位则包含了文本高度。零意味着出错 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpString String,欲计算的字串 
nCount Long,字串中的字符数 
nTabPositions Long,lpnTabStopPositions数组中的制表站数量。如果是零,则lpnTabStopPositions也应是NULL(需另行创建一个函数声明,将这个参数声明成ByVal nTabPositions&)。在这种情况下,制表站会根据当前字体的平均字符宽度,设置成默认的8字符间距。如nTabPositions是1,那么制表站间距就会以lpnTabStopPositions数组的第一个条目为准 
lpnTabStopPositions Long,指定制表站位置数组的第一个条目。这种位置是按升序用设备坐标指定的 
注解 
进行这种计算的时候,剪切区不会考虑在内
 

GetTextAlign 

VB声明 
Declare Function GetTextAlign Lib "gdi32" Alias "GetTextAlign" (ByVal hdc As Long) As Long 
说明 
接收一个设备场景当前的文本对齐标志 
返回值 
Long,当前的文本对齐标志。GDI_ERROR表示失败。会设置GetLastError。文本的对齐方法由几个常数的组合决定。其中每个常数都来自下述不同的组别。参考下面总结的文本对齐标志 
水平对齐标志 TA_CENTER 文本在约束矩形内居中显示 
TA_LEFT 文本在约束矩形内左对齐(默认设置) 
TA_RIGHT 文本在约束矩形内右对齐 
垂直对齐标志 定义文本输出函数的Y参数的含义 
TA_BASELINE Y参数指定字体基线的位置 
TA_BOTTOM Y参数指定约束矩形底边的位置 
TA_TOP Y参数指定约束矩形顶边的位置(默认设置) 
当前位置 TA_NOUPDATECP 文本输出函数不使用设备场景当前的绘图位置 
TA_UPDATECP 文本输出函数使用设备场景当前的绘图位置。完成绘图后,输出函数会对当前位置进行更新。文本输出函数的X和Y参数会被忽略——绘图会以当前位置为起点 
其他 TA_RTLREADING 文本输出从右到左进行。仅在Windows95下适用于希伯来和阿拉伯字体 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
注解 
参考对SetTextAlign函数的说明,进一步了解文本对齐标志的情况
 

GetTextCharacterExtra 

VB声明 
Declare Function GetTextCharacterExtra Lib "gdi32" Alias "GetTextCharacterExtraA" (ByVal hdc As Long) As Long 
说明 
判断额外字符间距的当前值。请参考SetTextCharacterExtra函数,了解进一步的情况 
返回值 
Long,返回Windows描绘文本时于字符间添加的额外空间大小 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 


GetTextCharset 

VB声明 
Declare Function GetTextCharset Lib "gdi32" Alias "GetTextCharset" (ByVal hdc As Long) As Long 
说明 
接收当前选入指定设备场景的字体的字符集标识符 
返回值 
Long,字符集标识符。DEFAULT_CHARSET代表默认字符集;-1表示出错 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 


GetTextCharsetInfo 

VB声明 
Declare Function GetTextCharsetInfo Lib "gdi32" Alias "GetTextCharsetInfo" (ByVal hdc As Long, lpSig As FONTSIGNATURE, ByVal dwFlags As Long) As Long 
说明 
获取与当前选定字体的字符集有关的详细信息 
返回值 
Long,字符集标识符。DEFAULT_CHARSET代表默认字符集;-1表示出错 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpSig FONTSIGNATURE,用于装载字符集信息的结构。有关Unicode字体签名(signature)的资料可在Unicode规格文件中找到 
dwFlags Long,已保留,设为零 


GetTextColor 

VB声明 
Declare Function GetTextColor Lib "gdi32" Alias "GetTextColor" (ByVal hdc As Long) As Long 
说明 
判断当前字体颜色。通常也称为“前景色” 
返回值 
Long,文字的当前RGB颜色设置。如果出错,会返回CLR_INVALID。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
注解 
在VB里用ForeColor属性设置图片控件和窗体
 

GetTextExtentExPoint 

VB声明 
Declare Function GetTextExtentExPoint Lib "gdi32" Alias "GetTextExtentExPointA" (ByVal hdc As Long, ByVal lpszStr As String, ByVal cchString As Long, ByVal nMaxExtent As Long, lpnFit As Long, alpDx As Long, lpSize As SIZE) As Long 
说明 
判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpszStr String,准备量度其范围的字串 
cchString Long,lpszStr字串的长度 
nMaxExtent Long,采用逻辑单位表示的水平范围 
lpnFit Long,在其中保存欲填充到指定区域的字符数量。可以为NULL(用一个别名化的声明来设置ByVal As Long)——此时会忽略nMaxExtent设置 
As Long,cchString数组的第一个条目。每个条目都要保存从字串起点到这个字符的距离(采用逻辑单位)。如果不需要这方面的信息,也可设为NULL(用别名声明设置 ByVal As Long) 
lpSize SIZE,这个结构用于装载字串范围的高度和宽度信息 
注解 
可用这个函数计算自动换行输出时的字符位置
 

GetTextExtentPoint, GetTextExtentPoint32 

VB声明 
Declare Function GetTextExtentPoint& Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As SIZE)
Declare Function GetTextExtentPoint32& Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE) 
说明 
判断一个字串的大小(范围)。在Win32环境中,最好使用GetTextExtentPoint32,它提供了更精确的计算结果 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpszString String,欲度量其范围(extent)的一个字串 
cbString Long,lpszString字串的长度 
lpSize SIZE,这个结构用于装载字串范围的高度和宽度信息 
注解 
这个函数不会将剪切区考虑在内,但却考虑到了由SetTextCharacterExtra函数设置的任何额外空间(间距)
 

GetTextFace 

VB声明 
Declare Function GetTextFace Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String) As Long 
说明 
获取一种字体的字样名 
返回值 
Long,缓冲区中载入的字节数量。零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
nCount Long,lpFacename字串的大小 
lpFacename String,指定一个字串缓冲区,用于装载当前选定字体的字样名称。这个缓冲区事先必须初始化成至少nCount+1个字符的长度 
注解 
类似于读取VB的FontName属性
 

GetTextMetrics 

VB声明 
Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long 
说明 
获取与选入一种设备场景的物理字体有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpMetrics TEXTMETRIC,用于填充物理字体属性信息的一个结构 


GrayString, GrayStringByString 

VB声明 
Declare Function GrayString& Lib "user32" Alias "GrayStringA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpOutputFunc As Long, ByVal lpData As Long, ByVal nCount As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long)
Declare Function GrayStringByString& Lib "user32" Alias "GrayStringA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpOutputFunc As Long, ByVal lpData As String, ByVal nCount As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As 
Long, ByVal nHeight As Long) 
说明 
描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态。这个函数使用的是当前字体,但会忽略背景及文本颜色 
返回值 
Long,非零表示成功。如果TextOut函数或回调控件绘图事件返回零,那么该函数也会返回零 
参数表 
参数 类型及说明 
hDC Long,设备场景的句柄 
hBrush Long,用于填充灰色的一个刷子。如果为零就用当前刷子 
lpOutputFunc Long,指向一个函数的指针,该函数用于输出文本。通常设为零,表示使用TextOut函数。否则可将该参数设成一个进程地址。具体地址可用一个标准函数的AddressOf运算符返回,或者用一个回调控件的相关属性返回 
lpData Long,如果是一个字串(将lpOutputFunc设为NULL),这就表示要以灰色显示的一个字串。否则就指定一个Long型变量,将其传递给回调函数 
nCount Long,欲显示的字符数量。如果设为零,而且lpData是个字串,那么就用于计算字串的长度 
X,Y Long,将字串封闭(约束)起来的一个矩形的X,Y坐标 
nWidth Long,将字串封闭起来的一个矩形的宽度,采用设备坐标表示。如设为零,就根据字串计算出具体的值 
nHeight Long,将字串封闭起来的一个矩形的高度,采用设备坐标表示。如设为零,就根据字串计算出具体的值 


[关闭][返回]