VB 版 (精华区)
发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标 题: 绘图函数6
发信站: 哈工大紫丁香 (2000年08月06日11:03:05 星期天), 转信
目录
PolyDraw 描绘一条复杂的曲线,由线段及贝塞尔曲线组成
Polygon 描绘一个多边形
Polyline 用当前画笔描绘一系列线段
PolyPolygon 用当前选定画笔描绘两个或多个多边形
PolyPolyline 用当前选定画笔描绘两个或多个多边形
Rectangle 用当前选定的画笔描绘矩形,并用当前选定的刷子填充
RoundRect 用当前选定的画笔画一个圆角矩形,并用当前选定的刷子在其中填充
SelectClipPath 将设备场景当前的路径合并到剪切区域里
SelectObject 为当前设备场景选择图形对象
SetArcDirection 设置圆弧的描绘方向
SetBkColor 为指定的设备场景设置背景颜色
SetBkMode 指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
SetBrushOrgEx 为指定的设备场景设置当前选定刷子的起点
SetEnhMetaFileBits 用指定内存缓冲区内包含的数据创建一个增强型图元文件
SetMetaFileBitsEx 用包含在指定内存缓冲区内的数据结构创建一个图元文件
SetMiterLimit 设置设备场景当前的斜率限制
_________________________________________________________
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
___________________________________________________________
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 新的剪切区域只包含了存在于路径或当前剪切区域中的点,但两地共有的
点不包括在内
Top
___________________________________________
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
Top
____________________________________________________________
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,一个字节数组的头一个条目,这个数组内包含了图元文件数据
_________________________________________
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
├┝┞┟┠┡┢┣ ※↑
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: jxjdadmin.hit.edu.cn]
--
※ 修改:·bloom 於 08月06日11:06:58 修改本文·[FROM: jxjdadmin.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:208.505毫秒