VB 版 (精华区)
发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标 题: 绘图函数1
发信站: 哈工大紫丁香 (2000年08月06日10:16:14 星期天), 转信
目录
AbortPath 抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径
的创建工作
AngleArc 用一个连接弧画一条线
Arc 画一个圆弧
BeginPath 启动一个路径分支
CancelDC 取消另一个线程里的长时间绘图操作
Chord 画一个弦
CloseEnhMetaFile 关闭指定的增强型图元文件设备场景,并将新建的图元文件返
回一个句柄
CloseFigure 描绘到一个路径时,关闭当前打开的图形
CloseMetaFile 关闭指定的图元文件设备场景,并向新建的图元文件返回一个句柄
CopyEnhMetaFile 制作指定增强型图元文件的一个副本(拷贝)
CopyMetaFile 制作指定(标准)图元文件的一个副本
CreateBrushIndirect 在一个LOGBRUSH数据结构的基础上创建一个刷子
CreateDIBPatternBrush 用一幅与设备无关的位图创建一个刷子,以便指定刷子样
式(图案)
CreateEnhMetaFile 创建一个增强型的图元文件设备场景
CreateHatchBrush 创建带有阴影图案的一个刷子
CreateMetaFile 创建一个图元文件设备场景
______________________________________________________________
AbortPath
VB声明
Declare Function AbortPath Lib "gdi32" Alias "AbortPath" (ByVal hdc As
Long) As Long
说明
抛弃选入指定设备场景中的所有路径。也取消目前正在进行的任何路径的创建工作
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景
_______________________________________
AngleArc
VB声明
Declare Function AngleArc Lib "gdi32" Alias "AngleArc" (ByVal hdc As
Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal
eStartAngle As Double, ByVal eSweepAngle As Double) As Long
说明
用一个连接弧画一条线,参考注解
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,要在其中作图的设备场景
x,y Long,对弧进行描述的一个圆的中心点坐标
dwRadius Long,圆的半径
eStartAngle Double,线同圆连接时的角度(以度数为单位)
eSweepAngle Double,弧在圆上占据的范围(以度数为单位)
注解
注意eStartAngle和eSweepAngle参数是以度数为单位指定的,而且应该是单精度
数(Single)而不是双精度。相应的函数声明为:Declare Function AngleArc&
Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long,
ByVal dwRadius As Long, ByVal eStartAngle As Single, ByVal eSweepAngle
As Single)。
我的理解:本文开头的函数声明复制于vb的api文本查看器,此处的声明来自于我
的参考资料,也不知谁对谁错。参数表的说明,按vb的api文本查看器中复制来的
声明中的数据类型。请使用者注意
_______________________________________________________
Arc,ArcTo
VB声明
Declare Function Arc& Lib "gdi32" (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, ByVal X4 As Long, ByVal Y4 As Long)
Declare Function ArcTo& Lib "gdi32" (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, ByVal X4 As Long, ByVal Y4 As Long)
说明
象注解中那样画一个圆弧。(X1,Y1)和(X2,Y2)定义了椭圆的一个范围(约束)
矩形。从矩形中心点到点(X3,Y3)的一条线段与椭圆的交点标志着圆弧的起点。
而到(X4,Y4)的一条线与椭圆的交点则标志着圆弧的终点。ArcTo函数会将当前画
笔位置设为弧的终点,而Arc函数则不会对当前的画笔位置造成影响
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,一个显示场景的句柄
X1,Y1 Long,指定围绕椭圆的一个矩形的左上角位置
X2,Y2 Long,指定围绕椭圆的一个矩形的右下角位置
X3,Y3 Long,指定圆弧起点
X4,Y4 Long,指定圆弧终点
注解
在win16和win95中,约束矩形的宽度和高度必须在3——32766间。绘图方向肯定
是逆时针方向。
在win nt中:绘图方向由SetArcDirection函数决定。默认为逆时针方向
____________________________________________________________
BeginPath
VB声明
Declare Function BeginPath Lib "gdi32" Alias "BeginPath" (ByVal hdc As
Long) As Long
说明
启动一个路径分支。在这个命令后执行的GDI绘图命令会自动成为路径的一部分。
对线段的连接会结合到一起。设备场景中任何现成的路径都会被清除。参考下表,
其中列出的函数都可记录到路径中
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,欲在其中记录的设备场景
合法的路径函数
函数 Windows NT Windows 95 函数 Windows NT Windows 95
AngleArc Yes No Arc Yes No
ArcTo Yes No Chord Yes No
Ellipse Yes No ExtTextOut Yes Yes
LineTo Yes Yes MoveToEx Yes Yes
Pie Yes No PolyBezier Yes Yes
PolyBezierTo Yes Yes PolyDraw Yes No
Polygon Yes Yes Polyline Yes Yes
PolylineTo Yes Yes PolyPolygon Yes Yes
PolyPolyline Yes Yes Rectangle Yes No
RoundRect Yes No TextOut Yes Yes
Top
__________________________________________________________
CancelDC
VB声明
Declare Function CancelDC Lib "gdi32" Alias "CancelDC" (ByVal hdc As
Long) As Long
说明
取消另一个线程里的长时间绘图操作
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,要在其中取消绘图操作的设备场景
注解
绘图操作有时可能会相当花时间。在多线程应用程序中,这个命令允许一个线程终
止另一个在线程里的绘图操作
___________________________________________________
Chord
VB声明
Declare Function Chord Lib "gdi32" Alias "Chord" (ByVal 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, ByVal X4 As Long, ByVal Y4 As Long)
As Long
说明
象注解中那样画一个弦。(X1,Y1)和(X2,Y2)定义了椭圆的一个范围(约束)矩
形。点(X3,Y3)和点(X4,Y4)定义了一条线段。该线段与椭圆之间的区域就是“
弦”
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,一个显示场景的句柄
X1,Y1 Long,指定围绕椭圆的一个矩形的左上角位置
X2,Y2 Long,指定围绕椭圆的一个矩形的右下角位置
X3,Y3 Long,指定与椭圆相交的一条线的一个点
X4,Y4 Long,指定与椭圆相交的一条线的另一个点
注解
在win16和win95中,约束矩形的宽度和高度必须在3——32766个单位之间。请参
考Arc获得更详细的图例
Top
_____________________________________________
CloseEnhMetaFile
VB声明
Declare Function CloseEnhMetaFile Lib "gdi32" Alias "CloseEnhMetaFile"
(ByVal hdc As ) As Long
说明
关闭指定的增强型图元文件设备场景,并将新建的图元文件返回一个句柄
返回值
Long,指向增强型图元文件的一个句柄。也许能用PlayEnhMetaFile函数回放图元
文件。零表示出错(原文:A handle to the enhanced metafile. The
PlayEnhMetaFile function may be used to play the metafile. Zero on
error.)
参数表
参数 类型及说明
hdc Long,由CreateEnhMetaFile函数返回的一个图元文件设备场景
______________________________________________________
CloseFigure
VB声明
Declare Function CloseFigure Lib "gdi32" Alias "CloseFigure" (ByVal
hdc As Long) As Long
说明
描绘到一个路径时,关闭当前打开的图形
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,包含了一个打开的Path分支的设备场景
注解
如准备在一个路径里描绘一系列线段,就会有一个打开的图形。调用这个函数的时
候,windows会在当前位置和图形的起始处(通常是最后一个MoveToEx操作设置画
笔位置的地方)画一条线。图中的这条线和第一条线会连接到一起。注意倘若自己
描绘这条线,图形仍会处于打开状态——即使起点与终点相同。这样便造成了与几
何画笔的差异。利用CloseFigure,线段会连接到一起——否则它们会用笔尖显示
出来。一旦关闭了图形,在路径中画的下一条线就会从一幅新图形开始。打开的图
形会被那些用于填充路径的函数自动关闭
___________________________________________________
CopyEnhMetaFile
VB声明
Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA"
(ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
说明
制作指定增强型图元文件的一个副本(拷贝)
返回值
Long,如执行成功,返回副本的句柄。零表示失败。会设置GetLastError
参数表
参数 类型及说明
hemfSrc Long,欲复制的增强型图元文件的句柄
lpszFile String,副本的文件名(要在磁盘上创建一个新的图元文件)。可用
vbNullString向这个参数传递一个NULL值,以便在内存中创建副本
_______________________________________________________
CopyMetaFile
VB声明
Declare Function CopyMetaFile Lib "gdi32" Alias "CopyMetaFileA" (ByVal
hMF As Long, ByVal lpFileName As String) As Long
说明
制作指定(标准)图元文件的一个副本
返回值
Long,如执行成功,则返回副本的句柄。零表示失败。会设置GetLastError
参数表
参数 类型及说明
hMF Long,指向欲复制的图元文件的句柄
lpFileName String,新图元文件的文件名。可用vbNullString向这个参数传递一
个NULL值,以便在内存中创建副本
________________________________________
CreateBrushIndirect
VB声明
Declare Function CreateBrushIndirect Lib "gdi32" Alias
"CreateBrushIndirect" (lpLogBrush As LOGBRUSH) As Long
说明
在一个LOGBRUSH数据结构的基础上创建一个刷子
返回值
Long,如执行成功,返回指向新刷子的一个句柄。零表示失败
参数表
参数 类型及说明
lpLogBrush LOGBRUSH
注解
如不再需要,请用DeleteObject函数删除刷子。也请参考CreateBrush函数,它的
参数与LOGBRUSH结构的字段是对应的
_____________________________________________________
CreateDIBPatternBrush,CreateDIBPatternBrushPt
VB声明
Declare Function CreateDIBPatternBrush& Lib "gdi32" (ByVal hPackedDIB As
Long, ByVal wUsage As Long)
Declare Function CreateDIBPatternBrushPt& Lib "gdi32" (lpPackedDIB As
Any, ByVal wUsage As Long)
说明
用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案)
返回值
Long,如执行成功,返回指向刷子的一个句柄。零表示失败
参数表
参数 类型及说明
hPackedDIB,lpPackedDIB Long,hPackedDIB是指向一个内存块的全局内存句柄。
那个内存块包含了一个BITMAPINFO结构,后面跟随一幅与设备无关的位图。
lpPackedDIB是具有相同配置的一个内存块的地址。如指定了单色DIB,DIB颜色就
会忽略,而换用文本和背景颜色
wUsage Long,下述常数之一:
DIB_PAL_COLORS DIB颜色表,包含了当前逻辑调色板的索引
DIB_RGB_COLORS DIB颜色表,包含了32位的RGB色值
注解
编制win32应用程序的时候,最好使用CreateDIBPatternBrushPt
___________________________________________________________
CreateEnhMetaFile
VB声明
Declare Function CreateEnhMetaFile Lib "gdi32" Alias
"CreateEnhMetaFileA" (ByVal hdcRef As Long, ByVal lpFileName As String,
lpRect As RECT, ByVal lpDescription As String) As Long
说明
创建一个增强型的图元文件设备场景。绘图操作也许在这个设备场景中执行。调用
CloseEnhMetaFile函数关闭了这个设备场景后,会创建一个图元文件句柄,在其中
包含记录下来的绘图命令序列。随后,可在任何设备场景中回放这些命令
返回值
Long,一个增强型图元文件设备场景。零表示函数执行出错。不要将这个设备场景
与图元文件句柄混淆起来。图元文件设备场景用于描绘图元文件——这与GDI绘图
函数作为参数使用的其他任何设备场景是一样的。调用CloseEnhMetaFile函数的时
候,会获得实际的图元文件句柄
参数表
参数 类型及说明
hdcRef Long,一个参考设备场景。函数会用该设备场景在图元文件中保存与创建
图元文件的那个设备的分辨率有关的信息。如设为零,表示将整个显示器(屏幕)
作为参考设备使用
lpFileName String,这个图元文件的磁盘文件名。文件应有一个.EMF扩展名。可
用vbNullString传递一个NULL,从而创建内存图元文件
lpRect RECT,一个约束矩形,用于描述图元文件的大小和位置(以0.01毫米为单
位)。可用它精确定义图元文件的物理尺寸
lpDescription String,对图元文件的一段说明。包括创建应用程序的名字、一个
NULL字符、对图元文件的一段说明以及两个NULL字符。如:"My app" & chr$(0) &
"my metafile" & chr$(0) & chr$(0)。如果不愿意包含一段说明,也可设为
vbNullString
注解
与标准图元文件相比,增强型图元文件的一个优点在于它们包括了对图元文件实际
大小和位置进行描述的信息,这些信息与它最开始创建时的情况相符。windows和
绘图程序可读取这种信息,在任何设备上实际重现图元文件
Top
_______________________________________________________
CreateHatchBrush
VB声明
Declare Function CreateHatchBrush Lib "gdi32" Alias "CreateHatchBrush"
(ByVal nIndex As Long, ByVal crColor As Long) As Long
说明
创建带有阴影图案的一个刷子(阴影图案见注解)
返回值
Long,如执行成功,返回指向新刷子的一个句柄。否则返回零。注意在不需要时,
用DeleteObject清除刷子
参数表
参数 类型及说明
nIndex Long,象下图那样指定一种阴影类型
crColor Long,指定刷子的RGB前景色
注解
Top
_________________________________________________________________
CreateMetaFile
VB声明
Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA"
(ByVal lpString As String) As Long
说明
创建一个图元文件设备场景。绘图操作也许能在这个设备中执行。调用
CloseMetaFile函数关闭了这个设备场景后,会创建一个图元文件句柄,其中包含
了记录下来的绘图命令序列。随后,可在任何设备场景中回放这些命令
返回值
Long,指向图元文件设备场景的一个句柄。零表示出错。注意不要把这个设备场景
与图元文件句柄混淆起来。图元文件设备场景用于描绘图元文件——它的用法与
GDI绘图函数作为参数使用的其他任何设备场景都是一样的。以后调用了
CloseMetaFile函数以后,会得到实际的图元文件句柄
参数表
参数 类型及说明
lpString String,欲用来容纳图元文件的文件名。用vbNullString可传递一个零
值,从而创建一个内存句柄
注解
尽管这个函数能创建基于磁盘的图元文件,但这些图元文件并非通常在windows下
使用的标准“可放置”图元文件格式
__________________________--
--
├┝┞┟┠┡┢┣ ※↑
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: jxjdadmin.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.653毫秒