VB 版 (精华区)

发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标  题: 绘图函数4
发信站: 哈工大紫丁香 (2000年08月06日10:32:42 星期天), 转信

                          目录
 
GetCurrentObject 获得指定类型的当前选定对象 
GetCurrentPositionEx 在指定的设备场景中取得当前的画笔位置 
GetEnhMetaFile 取得磁盘文件中包含的一个增强型图元文件的图元文件句柄 
GetEnhMetaFileBits 将指定的增强型图元文件复制到一个内存缓冲区里 
GetEnhMetaFileDescription 返回对一个增强型图元文件的说明 
GetEnhMetaFileHeader 取得增强型图元文件的图元文件头 
GetEnhMetaFilePaletteEntries 取得增强型图元文件的全部或部分调色板 
GetMetaFile 取得包含在一个磁盘文件中的图元文件的图元文件句柄 
GetMetaFileBitsEx 将指定的图元文件复制到一个内存缓冲区 
GetMiterLimit 取得设备场景的斜率限制(Miter)设置 
GetNearestColor 根据设备的显示能力,取得与指定颜色最接近的一种纯色 
GetObjectAPI 取得对指定对象进行说明的一个结构 
GetObjectType 判断由指定句柄引用的GDI对象的类型 
GetPath 取得对当前路径进行定义的一系列数据 
GetPixel 在指定的设备场景中取得一个像素的RGB值 
GetPolyFillMode 针对指定的设备场景,获得多边形填充模式 
___________________________________________________
GetCurrentObject 

VB声明 
Declare Function GetCurrentObject Lib "gdi32" Alias "GetCurrentObject" 
(ByVal hdc As Long, ByVal uObjectType As Long) As Long 
说明 
用于获得指定类型的当前选定对象 
返回值 
Long,当前选定对象的句柄,零表示错误 
参数表 
参数 类型及说明 
hdc Long,欲查询的设备场景 
uObjectType Long,对象类型。可以是下述常数之一:OBJ_PEN,OBJ_BRUSH,
OBJ_PAL,OBJ_FONT,或OBJ_BITMAP 
_________________________________________________________
GetCurrentPositionEx 

VB声明 
Declare Function GetCurrentPositionEx Lib "gdi32" Alias 
"GetCurrentPositionEx" (ByVal hdc As Long, lpPoint As POINTAPI) As 
Long 
说明 
在指定的设备场景中取得当前的画笔位置 
返回值 
Long,非零表示成功,零表示失败 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpPoint POINTAPI,用于装载当前位置 
____________________________________________
GetEnhMetaFile 

VB声明 
Declare Function GetEnhMetaFile Lib "gdi32" Alias "GetEnhMetaFileA" 
(ByVal lpszMetaFile As String) As Long 
说明 
取得磁盘文件中包含的一个增强型图元文件的图元文件句柄(原文:Retrieves 
a metafile handle to an enhanced metafile contained in a disk file) 
返回值 
Long,指向图元文件的句柄。零表示出错 
参数表 
参数 类型及说明 
lpszMetaFile String,包含了增强型图元文件的一个磁盘文件的名字 
______________________________________________________
GetEnhMetaFileBits 

VB声明 
Declare Function GetEnhMetaFileBits Lib "gdi32" Alias 
"GetEnhMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, 
lpbBuffer As Byte) As Long 
说明 
将指定的增强型图元文件复制到一个内存缓冲区里。这个函数可用于取得一个图元
文件的原始数据,以便将其保存到磁盘文件中 
返回值 
Long,如lpbBuffer为零,则必须设置缓冲区的长度(用ByVal As Long在这种情况
下传递一个NULL参数)。如执行成功,返回缓冲区实际载入的字节数;零表示执行
失败 
参数表 
参数 类型及说明 
hemf Long,指向一个增强型图元文件的句柄 
cbBuffer Long,lpbBuffer缓冲区的长度 
lpbBuffer Byte,长度为cbBuffer的一个缓冲区的头一个字节。可用一个别名,将
这个参数定义成ByVal As Long,以便传递一个内存地址 
注解 
调用了这个函数后,图元文件句柄hemf仍然有效
 
______________________________________________________
GetEnhMetaFileDescription 

VB声明 
Declare Function GetEnhMetaFileDescription Lib "gdi32" Alias 
"GetEnhMetaFileDescriptionA" (ByVal hemf As Long, ByVal cchBuffer As 
Long, ByVal lpszDescription As String) As Long 
说明 
返回对一个增强型图元文件的说明 
返回值 
Long,如lpszDescription为NULL(使用vbNullString),则必须设置缓冲区的长
度。如函数执行成功,返回实际载入缓冲区的字节数;如不存在说明信息则返回零
 
参数表 
参数 类型及说明 
hemf Long,目标增强型图元文件的句柄 
cchBuffer Long,lpszDescription缓冲区的长度 
lpszDescription String,指定一个预先初始化好的字串缓冲区,准备随同图元文
件说明载入。参考CreateEnhMetaFile函数,了解增强型图元文件说明字串的具体
格式 
________________________________________________
GetEnhMetaFileHeader 

VB声明 
Declare Function GetEnhMetaFileHeader Lib "gdi32" Alias 
"GetEnhMetaFileHeader" (ByVal hemf As Long, ByVal cbBuffer As Long, 
lpemh As ENHMETAHEADER) As Long 
说明 
取得增强型图元文件的图元文件头 
返回值 
Long,若lpemh为零(用ByVal As Long在这种情况下传递一个NULL参数)则必须设
置缓冲区的长度。如执行成功,返回缓冲区中实际载入的字节数;零表示失败 
参数表 
参数 类型及说明 
hemf Long,指向一个增强型图元文件的句柄 
cbBuffer Long,ENHMETAHEADER结构的大小 
lpemh ENHMETAHEADER 
______________________________________________
GetEnhMetaFilePaletteEntries 

VB声明 
Declare Function GetEnhMetaFilePaletteEntries Lib "gdi32" Alias 
"GetEnhMetaFilePaletteEntries" (ByVal hemf As Long, ByVal cEntries As 
Long, lppe As PALETTEENTRY) As Long 
说明 
取得增强型图元文件的全部或部分调色板 
返回值 
Long,如lppe为零(用ByVal As Long在这种情况下传递一个NULL参数)则必须设
置缓冲区的长度。如执行成功,返回缓冲区实际载入的条目数量;如图元文件中不
存在调色板就返回一个零值。如返回GDI_ERROR,表示函数执行出错 
参数表 
参数 类型及说明 
hemf Long,增强型图元文件的句柄 
cEntries Long,欲取回的条目数量 
lppe PALETTEENTRY,一个PALETTEENTRY结构的数组,用于装载增强型图元文件的
调色板条目。注意至少要包括cEntries个结构 
____________________________________________________________
GetMetaFile 

VB声明 
Declare Function GetMetaFile Lib "gdi32" Alias "GetMetaFileA" (ByVal 
lpFileName As String) As Long 
说明 
取得包含在一个磁盘文件中的图元文件的图元文件句柄 
返回值 
Long,指向已载入的图元文件的一个句柄,零表示错误 
参数表 
参数 类型及说明 
lpFileName String,包含了一个图元文件的磁盘文件的名称 
注解 
这个函数在vb里没有什么用。因为windows图元文件通常保存为可放置的图元文件
格式,而该函数不能识别这种格式
 
________________________________________________________
GetMetaFileBitsEx 

VB声明 
Declare Function GetMetaFileBitsEx Lib "gdi32" Alias "GetMetaFileBitsEx"
 (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any) As Long 
说明 
将指定的图元文件复制到一个内存缓冲区。这个函数可用于取得一个图元文件的原
始数据,以便转存到磁盘文件 
返回值 
Long,如lpvData为零(在这种情况下用ByVal As Long传递一个NULL参数),那么
必须指定缓冲区的长度。如执行成功,返回实际载入缓冲区的字节数,零表示出错
 
参数表 
参数 类型及说明 
hMF Long,标准windows图元文件的句柄 
nSize Long,lpvData缓冲区的长度 
lpvData 任何类型,一个字节数组中的第一个条目,该数组用于装载图元文件数据
。用ByVal As Long可指定空值或缓冲区的内存地址 
__________________________________________________
GetMetaFileBitsEx 

VB声明 
Declare Function GetMetaFileBitsEx Lib "gdi32" Alias "GetMetaFileBitsEx"
 (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any) As Long 
说明 
将指定的图元文件复制到一个内存缓冲区。这个函数可用于取得一个图元文件的原
始数据,以便转存到磁盘文件 
返回值 
Long,如lpvData为零(在这种情况下用ByVal As Long传递一个NULL参数),那么
必须指定缓冲区的长度。如执行成功,返回实际载入缓冲区的字节数,零表示出错
 
参数表 
参数 类型及说明 
hMF Long,标准windows图元文件的句柄 
nSize Long,lpvData缓冲区的长度 
lpvData 任何类型,一个字节数组中的第一个条目,该数组用于装载图元文件数据
。用ByVal As Long可指定空值或缓冲区的内存地址 
_________________________________________________
GetMiterLimit 

VB声明 
Declare Function GetMiterLimit& Lib "gdi32" (ByVal hdc As Long, 
peLimit As Single) 
说明 
取得设备场景的斜率限制(Miter)设置——斜率限制是指斜角长度与线宽间的比
率 
返回值 
Long, 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
peLimit Single,随同当前斜率设置载入一个Single值 
注解 
开头的声明来自于我的资料,而在vb的api文本查看器里的声明如下:Declare 
Function GetMiterLimit Lib "gdi32" Alias "GetMiterLimit" (ByVal hdc As 
Long, peLimit As Double) As Long,参数peLimit的类型不同,不知是谁错了。

 
____________________________________________________
GetNearestColor 

VB声明 
Declare Function GetNearestColor Lib "gdi32" Alias "GetNearestColor" 
(ByVal hdc As Long, ByVal crColor As Long) As Long 
说明 
根据设备的显示能力,取得与指定颜色最接近的一种纯色 
返回值 
Long,取得与指定颜色最接近的一种颜色,这种颜色可由设备场景实际显示出来(
给定当前系统调色板)。如返回CLR_INVALID,表示函数执行出错。会设置
GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
crColor Long,欲测试的RGB颜色 
______________________________________________
GetObjectAPI 

VB声明 
Declare Function GetObjectAPI& Lib "gdi32" Alias "GetObjectA" (ByVal 
hObject As Long, ByVal nCount As Long, lpObject As Any) 
说明 
取得对指定对象进行说明的一个结构。windows手册建议用GetObject这个名字来引
用该函数。GetObjectAPI在vb中用于避免与GetObject关键字混淆 
返回值 
Long,如lpObject设为零(用ByVal As Long在这种情况下传递一个NULL参数),
则必须设置缓冲区的长度。如执行成功,返回载入结构内部的实际字节数;如失败
,返回零值 
参数表 
参数 类型及说明 
hObject Long,画笔、刷子、字体、位图或调色板等对象的句柄 
nCount Long,欲取回的字节数。通常是由lpObject定义的那个结构的长度 
lpObject 任何类型,用于容纳对象数据的结构。针对画笔,通常是一个LOGPEN结
构;针对扩展画笔,通常是EXTLOGPEN;针对字体是LOGBRUSH;针对位图是BITMAP
;针对DIBSection位图是DIBSECTION;针对调色板,应指向一个整型变量,代表调
色板中的条目数量 
______________________________________________________
GetObjectType 

VB声明 
Declare Function GetObjectType Lib "gdi32" Alias "GetObjectType" 
(ByVal hgdiobj As Long) As Long 
说明 
判断由指定句柄引用的GDI对象的类型 
返回值 
Long,带有OBJ_前缀的一个常数,标志着一种特定的对象。零表示错误 
参数表 
参数 类型及说明 
hgdiobj Long,一个GDI对象句柄 
_______________________________________
GetPath 

VB声明 
Declare Function GetPath Lib "gdi32" Alias "GetPath" (ByVal hdc As Long,
 lpPoint As POINTAPI, lpTypes As Byte, ByVal nSize As Long) As Long 
说明 
取得对当前路径进行定义的一系列数据 
返回值 
Long,载入数组的点数(如nSize设为零,则返回要求的条目数量)。如数组空间
不够大,不足以容下所有的点,就返回-1。会将GetLastError设置为下述值之一:
ERROR_CAN_NOT_COMPLETE,ERROR_INVALID_PARAMETER,ERROR_BUFFER_OVERFLOW 

参数表 
参数 类型及说明 
hdc Long,包含了路径的设备场景 
lpPoint POINTAPI,一个POINTAPI结构数组中的第一个元素。这个数组为路径中的
每个段(segment)都要载入坐标数据。具体的信息是采用逻辑坐标提供的 
lpTypes Byte,一个字节数组中的第一个元素;这个数组定义了与每个坐标对应的
操作类型。其中包括: 
PT_MOVETO 坐标是一个新子路径的起始处 
PT_LINETO 坐标是来自前一个坐标的一条线的终点 
PT_BEZIERTO 肯定以三点一组的形式出现。头两个点是控制点,第三个是贝塞尔(
Bezier)曲线的终点。PT_LINETO和PT_BEZIERTO也许能与PT_CLOSEFIGURE联合使用
。在这种情况下,它代表一幅图象的最后一个点。将这个点与子路径的第一个连接
起来后,路径就会封闭 
nSize Long,lpPoint和lpTypes数组的大小。如设为零,表示取得要求的数组大小
 
注解 
尽管路径信息是在设备坐标的内部保存的,这个函数的所有坐标都是用逻辑坐标返
回的。具体坐标取决于当前的坐标系统及转换设置。可用FlattenPath函数强迫路
径中的所有点都成为PT_MOVETO和PT_LINETO类型
____________________________________________________
GetPixel 

VB声明 
Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As 
Long, ByVal x As Long, ByVal y As Long) As Long 
说明 
在指定的设备场景中取得一个像素的RGB值 
返回值 
Long,指定点的RGB颜色。如指定的点位于设备场景的剪切区之外,则返回
CLR_INVALID 
参数表 
参数 类型及说明 
hdc Long,一个设备场景的句柄 
x,y Long,逻辑坐标中要检查的点 
注解 
用GetDeviceCaps判断设备是否支持本函数
 
____________________________________________________
GetPolyFillMode 

VB声明 
Declare Function GetPolyFillMode Lib "gdi32" Alias "GetPolyFillMode" 
(ByVal hdc As Long) As Long 
说明 
针对指定的设备场景,获得多边形填充模式。关于填充模式见注解 
返回值 
Long,常数ALTERNATE 或 WINDING。零表示失败 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
注解 
填充模式1——ALTERNATE:为判断一个点是否位于填充区,windows会从这个点到
图形外部画一条假想的线。每与一条线相交,计数器就会增1。如最后一个记数是
奇数,则填充这个点;如果是偶数,则保留原样不变
填充模式2——WINDING:为判断一个点是否位于填充区,windows会从这个点到图
形外部画一条假想的线。windows会跟踪画出每个顶点(线段)的方向。这条假想
的线每次穿过一个顶点时,而且顶点的Y方向为正,则减一个记数。如结果记数不
是零,就表明该点位于填充区域
 

 

├┝┞┟┠┡┢┣ ※↑

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: jxjdadmin.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:205.736毫秒