发信人: winsy(鹰派)
整理人: winsy(2003-03-11 14:02:52), 站内信件
|
PolyDraw
VB声明
Declare Function PolyDraw Lib "gdi32" Alias "PolyDraw" (ByVal hdc As Long, lppt As POINTAPI, lpbTypes As Byte, ByVal cCount As Long) As Long
说明
描绘一条复杂的曲线,由线段及贝塞尔曲线组成
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,用于绘图的设备场景
lppt POINTAPI,POINTAPI结构数组的第一个元素。这个数组用于为描绘的每一段都载入坐标数据。这些信息是用逻辑坐标提供的
lpbTypes Byte,一个字节数组的第一个元素。这个数组定义了与每个坐标对应的操作类型。其中包括:
PT_MOVETO 坐标是一幅新打开图形的起点
PT_LINETO 坐标是来自前一个坐标的一条线的终点
PT_BEZIERTO 以三点一组的形式出现。头两个点是控制点,第三个是贝塞尔曲线的终点。PT_LINETO和PT_BEZIERTO也许能与PT_CLOSEFIGURE联合使用。在这种情况下,它代表一幅图形的最后一个点。将这个点与图形的第一个点连接起来后,图形就会封闭
cCount Long,lppt和lpbTypes数组的大小,设为零表示取得需要的数组大小
原文:The size of the lpPoint and lpTypes array. Set to zero to retrieve the required array size.
注解
当前的画笔位置设为最后一条线段或lppt数组中的曲线的终点
Polygon
VB声明
Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
说明
描绘一个多边形,由两点或三点的任意系列构成。windows会将最后一个点与第一个点连接起来,从而封闭多边形。多边形的边框用当前选定的画笔描绘,多边形用当前选定的刷子填充
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,用于描绘的设备场景
lpPoint POINTAPI,在nCount POINTAPI结构数组中的第一个POINTAPI结构
nCount Long,多边形的总点数(顶点数)
注解
GetPolyFillMode 和 SetPolyFillMode 函数决定了如何在多边形内部填充
Polyline, PolyLineTo
VB声明
Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long
说明
用当前画笔描绘一系列线段。使用PolylineTo函数时,当前位置会设为最后一条线段的终点。它不会由Polyline函数改动
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,要在其中绘图的设备场景
lpPoint POINTAPI,nCount POINTAPI结构数组中的第一个POINTAPI结构
nCount Long,lpPoint数组中的点数。会从第一个点到第二个点画一条线,以次类推
PolyPolygon
VB声明
Declare Function PolyPolygon Lib "gdi32" Alias "PolyPolygon" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long
说明
用当前选定画笔描绘两个或多个多边形。根据由SetPolyFillMode函数指定的多边形填充模式,用当前选定的刷子填充它们。每个多边形都必须是封闭的
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,要在其中绘图的设备场景
lpPoint POINTAPI,nCount POINTAPI结构数组中的第一个POINTAPI结构
lpPolyCounts Long,在Long值数组中的第一个条目。每个条目都包含了一定数量的点,用于构成一个封闭的多边形。lpPoint数组由一系列封闭的多边形构成,每个在lpPolyCounts数组中都有一个条目
nCount Long,要描绘的多边形总数(就是lpPolyCounts数组的大小)。至少为2
PolyPolyline
VB声明
Declare Function PolyPolyline Lib "gdi32" Alias "PolyPolyline" (ByVal hdc As Long, lppt As POINTAPI, lpdwPolyPoints As Long, ByVal cCount As Long) As Long
说明
用当前选定画笔描绘两个或多个多边形
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,要在其中绘图的设备场景
lpPoint POINTAPI,nCount POINTAPI结构数组中的第一个POINTAPI结构
lpdwPolyPoints Long,在Long值数组中的第一个条目。每个条目都包含了构成一个多边形的点数。lpPoint数组由一系列多边形构成,每个在lpdwPolyPoints数组中都有一个条目
cCount Long,要描绘的多边形总数(就是lpdwPolyPoints数组的大小)
注解
这个函数几乎与PolyPolygon函数完全一致,只是多边形不会填充,也不需要封闭
Rectangle
VB声明
Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
说明
用当前选定的画笔描绘矩形,并用当前选定的刷子进行填充
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
X1,Y1 Long,指定矩形左上角位置
X2,Y2 Long,指定矩形右下角位置
RoundRect
VB声明
Declare Function RoundRect Lib "gdi32" Alias "RoundRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
说明
用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充。X3和Y3定义了用于生成圆角的椭圆
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,用于绘图的设备场景
X1,Y1 Long,对矩形左上角位置进行说明的X,Y坐标
X2,Y2 Long,对矩形右下角位置进行说明的X,Y坐标
X3 Long,用于生成圆角效果的一个椭圆的宽度。取值范围从零(表示不加圆角),一直到矩形的宽度(全圆)
Y3 Long,用于生成圆角效果的一个椭圆的高度。取值范围从零(表示不加圆角),一直到矩形的高度(全圆)
SelectClipPath
VB声明
Declare Function SelectClipPath Lib "gdi32" Alias "SelectClipPath" (ByVal hdc As Long, ByVal iMode As Long) As Long
说明
将设备场景当前的路径合并到剪切区域里
返回值
Long,非零表示成功,零表示失败。会将GetLastError设置为下述值之一:ERROR_CAN_NOT_COMPLETE,ERROR_INVALID_PARAMETER,ERROR_NOT_ENOUGH_MEMORY
参数表
参数 类型及说明
hdc Long,包含了欲合并到剪切区域的路径的一个设备场景的句柄
iMode Long,决定如何将路径与当前剪切区域合并到一起。可选下述常数之一:
RGN_AND 新的剪切区域只包含了在路径和当前剪切区域都存在的点
RGN_COPY 新剪切区域设为路径
RGN_DIFF 新剪切区域只包含了当前剪切区域的点,但这些点不在路径中
RGN_OR 新的剪切区域包含了在路径或当前剪切区域中的点
RGN_XOR 新的剪切区域只包含了存在于路径或当前剪切区域中的点,但两地共有的点不包括在内
SelectObject
VB声明
Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long
说明
每个设备场景都可能有选入其中的图形对象。其中包括位图、刷子、字体、画笔以及区域等等。一次选入设备场景的只能有一个对象。选定的对象会在设备场景的绘图操作中使用。例如,当前选定的画笔决定了在设备场景中描绘的线段颜色及样式
返回值
Long,与以前选入设备场景的相同hObject类型的一个对象的句柄,零表示出错。如选定的对象是一个区域(Region),结果就是下列常数之一:SIMPLEREGION, COMPLEXREGION 或 NULLREGION 对区域进行描述, GDI_ERROR 表示出错
参数表
参数 类型及说明
hdc Long,一个设备场景的句柄
hObject Long,一个画笔、位图、刷子、字体或区域的句柄
注解
返回值通常用于获得选入DC的对象的原始值。绘图操作完成后,原始的对象通常选回设备场景。在清除一个设备场景前,务必注意恢复原始的对象
SetArcDirection
VB声明
Declare Function SetArcDirection Lib "gdi32" Alias "SetArcDirection" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long
说明
设置圆弧的描绘方向
返回值
Long,如执行成功,返回原始的圆弧方向;零意味着出错
参数表
参数 类型及说明
hdc Long,要设置的设备场景
ArcDirection Long,AD_CLOCKWISE (顺时针)或 AD_COUNTERCLOCKWISE (逆时针)
注解
可应用于下列函数:Arc, ArcTo, Chord, Ellipse, Pie, Rectangle 和 RoundRect
SetBkColor
VB声明
Declare Function SetBkColor Lib "gdi32" Alias "SetBkColor" (ByVal hdc As Long, ByVal crColor As Long) As Long
说明
为指定的设备场景设置背景颜色。背景颜色用于填充阴影刷子、虚线画笔以及字符(如背景模式为OPAQUE)中的空隙。也在位图颜色转换期间使用。参考SetBkMode
返回值
Long,前一个背景色,CLR_INVALID表示出错
参数表
参数 类型及说明
hdc Long,设备场景的句柄
crColor Long,新背景颜色的RGB颜色值
注解
背景实际是设备能够显示的最接近于 crColor 的颜色
SetBkMode
VB声明
Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
说明
指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
返回值
Long,前一个背景模式的值
参数表
参数 类型及说明
hdc Long,设备场景的句柄
nBkMode Long,下述常数之一:
OPAQUE 用当前的背景色填充虚线画笔、阴影刷子以及字符的空隙
TRANSPARENT 透明处理,即不作上述填充
注解
背景模式不会影响用扩展画笔描绘的线条
SetBrushOrgEx
VB声明
Declare Function SetBrushOrgEx Lib "gdi32" Alias "SetBrushOrgEx" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lppt As POINTAPI) As Long
说明
为指定的设备场景设置当前选定刷子的起点
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
nXOrg,nYOrg Long,刷子的新起点,采用设备坐标表示。取值范围在0-7之间(不需要更大的值,因为windows95下最大的刷子的尺寸是8×8;而这个函数在NT下是不必要的)
lppt POINTAPI,用于装载前一个刷子的起点
注解
Windows NT会自动设置刷子的起点,所以不应在NT下使用这个函数
在vb里使用
注意完成以后一定要将设备场景的刷子起点设为0,0。既可明确指定坐标,也可用RestoreDC函数恢复恢复原始的DC
SetEnhMetaFileBits
VB声明
Declare Function SetEnhMetaFileBits Lib "gdi32" Alias "SetEnhMetaFileBits" (ByVal cbBuffer As Long, lpData As Byte) As Long
说明
用指定内存缓冲区内包含的数据创建一个增强型图元文件。在从磁盘读入原始的图元文件数据后(最开始是由GetEnhMetaFileBits函数获得的),通常再用这个函数创建一个图元文件
返回值
Long,如执行成功,返回一个增强型图元文件句柄;否则返回零
参数表
参数 类型及说明
cbBuffer Long,lpData数组的长度
lpData Byte,一个字节数组的头一个条目,这个数组内包含了图元文件数据
SetMetaFileBitsEx
VB声明
Declare Function SetMetaFileBitsEx Lib "gdi32" Alias "SetMetaFileBitsEx" (ByVal nSize As Long, lpData As Byte) As Long
说明
用包含在指定内存缓冲区内的数据结构创建一个图元文件。在从磁盘读入原始的图元文件数据后(最开始是由GetMetaFileBitsEx函数获得的),通常再用这个函数创建一个图元文件
返回值
Long,如执行成功,返回一个标准图元文件的句柄;零意味着失败
参数表
参数 类型及说明
nSize Long,lpData数组的长度
lpData Byte,一个字节数组的头一个条目,这个数组内包含了图元文件数据
SetMiterLimit
VB声明
Declare Function SetMiterLimit& Lib "gdi32" (ByVal hdc As Long, ByVal eNewLimit As Single, peOldLimit As Single)
说明
设置设备场景当前的斜率限制
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,欲设置的设备场景
eNewLimit Single,新的斜率限制
peOldLimit Single,用于容纳原始斜率限制的一个单精度值
注解
斜率限制是指斜角长度与线宽之间的比率
其他
请看vb的api文本查看器里的声明:Function SetMiterLimit Lib "gdi32" Alias "SetMiterLimit" (ByVal hdc As Long, ByVal eNewLimit As Double, peOldLimit As Double) As Long
|
|