VB 版 (精华区)
发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标 题: 绘图函数5
发信站: 哈工大紫丁香 (2000年08月06日10:59:34 星期天), 转信
目录
GetROP2 针对指定的设备场景,取得当前的绘图模式
GetStockObject 取得一个固有对象(Stock)
GetSysColorBrush 为任何一种标准系统颜色取得一个刷子
GetWinMetaFileBits 通过在一个缓冲区中填充用于标准图元文件的数据,将一个
增强型图元文件转换成标准windows图元文件
InvertRect 通过反转每个像素的值,从而反转一个设备场景中指定的矩形
LineDDA 枚举指定线段中的所有点
LineTo 用当前画笔画一条线,从当前位置连到一个指定的点
MoveToEx 为指定的设备场景指定一个新的当前画笔位置
PaintDesktop 在指定的设备场景中描绘桌面墙纸图案
PathToRegion 将当前选定的路径转换到一个区域里
Pie 画一个饼图
PlayEnhMetaFile 在指定的设备场景中画一个增强型图元文件
PlayEnhMetaFileRecord 回放单独一条增强型图元文件记录
PlayMetaFile 在指定的设备场景中回放一个图元文件
PlayMetaFileRecord 回放来自图元文件的单条记录
PolyBezier 描绘一条或多条贝塞尔(Bezier)曲线
___________________________________________________
GetROP2
VB声明
Declare Function GetROP2 Lib "gdi32" Alias "GetROP2" (ByVal hdc As Long)
As Long
说明
针对指定的设备场景,取得当前的绘图模式。这样可定义绘图操作如何与正在显示
的图象合并起来
返回值
Long,请参考绘图模式常数表
参数表
参数 类型及说明
hdc Long,设备场景的句柄
注解
这个函数只对光栅设备有效
绘图模式常数表
常数 DrawMode 像素值
R2_BLACK vbBlackness 黑色
R2_WHITE vbWhitness 白色
R2_NOP vbNop 不变
R2_NOT vbInvert 当前显示颜色的反色
R2_COPYPEN vbCopyPen 画笔颜色
R2_NOTCOPYPEN vbNotCopyPen R2_COPYPEN的反色
R2_MERGEPENNOT vbMergePenNot 显示颜色的反色与画笔颜色进行OR运算
R2_MASKPENNOT vbMaskPenNot 显示颜色的反色与画笔颜色进行AND运算
R2_MERGENOTPEN vbMergeNotPen 画笔颜色的反色与显示颜色进行OR运算
R2_MASKNOTPEN vbMaskNotPen 画笔颜色的反色与显示颜色进行AND运算
R2_MERGEPEN vbMergePen 画笔颜色与显示颜色进行OR运算
R2_NOTMERGEPEN vbNotMergePen R2_MERGEPEN的反色
R2_MASKPEN vbMaskPen 显示颜色与画笔颜色进行AND运算
R2_NOTMASKPEN vbNotMaskPen R2_MASKPEN的反色
R2_XORPEN vbXorPen 显示颜色与画笔颜色进行异或运算
R2_NOTXORPEN vbNotXorPen R2_XORPEN的反色
Top
________________________________________________________
GetStockObject
VB声明
Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject"
(ByVal nIndex As Long) As Long
说明
取得一个固有对象(Stock)。这是可由任何应用程序使用的windows标准对象之一
返回值
Long,指向指定对象的一个句柄。零表示出错
参数表
参数 类型及说明
nIndex Long,下述表格中定义的任何常数之一
BLACK_BRUSH 黑色刷子 DKGRAY_BRUSH 黑灰色刷子
GRAY_BRUSH 灰色刷子 HOLLOW_BRUSH 凹刷子
LTGRAY_BRUSH 浅灰色刷子 NULL_BRUSH 空刷子
WHITE_BRUSH 白色刷子 BLACK_PEN 黑色画笔
NULL_PEN 空画笔 WHITE_PEN 白色画笔
ANSI_FIXED_FONT 采用windows(ANSI)字符集的等宽字体 ANSI_VAR_FONT 采用
windows(ANSI)字符集的不等宽字体
DEVICE_DEFAULT_FONT 设备使用的默认字体(NT) DEFAULT_GUI_FONT 用户界面的
默认字体,包括菜单和对话框字体(Windows 95)
OEM_FIXED_FONT OEM字符集的固有字体 SYSTEM_FONT 屏幕系统字体。这是用于菜
单、对话框等等的默认不等宽字体
SYSTEM_FIXED_FONT 屏幕系统字体。这是用于菜单、对话框等等的默认等宽字体(
在windows 3.0之前使用) DEFAULT_PALETTE 默认调色板
注解
固有刷子的起点可能不会改变。不应用DeleteObject函数删除这些对象。不要对那
些不具备CS_HREDRAW 和 CS_VREDRAW类样式的窗口使用DK_GRAY_BRUSH,
GRAY_BRUSH 和 LTGRAY_BRUSH刷子
Top
____________________________________________________
GetSysColorBrush
VB声明
Declare Function GetSysColorBrush Lib "user32" Alias
"GetSysColorBrush" (ByVal nIndex As Long) As Long
说明
为任何一种标准系统颜色取得一个刷子
返回值
Long,针对一种系统颜色的一个固有刷子的句柄。零表示出错
参数表
参数 类型及说明
nIndex Long,系统颜色索引,也即带有COLOR_前缀的某个常数。参考GetSysColor
注解
不要用DeleteObject函数删除这些刷子。它们是由系统拥有的固有对象。不要将这
些刷子指定成一种窗口类的默认刷子
__________________________________________________________
GetWinMetaFileBits
VB声明
Declare Function GetWinMetaFileBits Lib "gdi32" Alias
"GetWinMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long,
lpbBuffer As Byte, ByVal fnMapMode As Long, ByVal hdcRef As Long) As
Long
说明
通过在一个缓冲区中填充用于标准图元文件的数据,将一个增强型图元文件转换成
标准windows图元文件
返回值
Long,以字节数表示的图元文件长度。如lpbBuffer为NULL(在这种情况下用一个
别名指定ByVal As Long,从而传递一个NULL值)——返回字节数组的长度。零表
示出错(原文:The size in bytes of the metafile. If lpbBuffer is null
(use an alias with the parameter specified ByVal as Long to pass null to
this function)-returns the required size of the byte array. Zero on
error.)
参数表
参数 类型及说明
hemf Long,欲转换的增强型图元文件的句柄。函数调用完毕后,该句柄仍然保持
有效
cbBuffer Long,目标缓冲区的长度
lpbBuffer Byte,作为目标缓冲区使用的一个字节数组的第一个字节。这个数组的
长度至少为cbBuffer个字节
fnMapMode Long,转换时采用的映射(对应)模型。通常用MM_ANISOTROPIC创建一
个可扩展的图元文件
hdcRef Long,一个参考设备场景,用于决定新图元文件采用的参考分辨率
注解
有些增强型图元文件命令没有对应的标准图元文件命令。这些命令会转换成最接近
的命令,或者丢弃。结果生成的图元文件已指定了窗口的显示范围。窗口的起点是
0,0
________________________________________________________
InvertRect
VB声明
Declare Function InvertRect Lib "user32" Alias "InvertRect" (ByVal hdc
As Long, lpRect As RECT) As Long
说明
通过反转每个像素的值,从而反转一个设备场景中指定的矩形
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
lpRect RECT,要反转的矩形,用逻辑坐标指定
注解
反转是一种光栅操作
________________________________________________
LineDDA
VB声明
Declare Function LineDDA Lib "gdi32" Alias "LineDDA" (ByVal n1 As Long,
ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal
lpLineDDAProc As Long, ByVal lParam As Long) As Long
说明
枚举指定线段中的所有点
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
n1,n2 Long,线段的x,y起点坐标
n3,n4 Long,线段的x,y终点坐标
lpLineDDAProc Long,vb5中的一个函数地址
lParam Long,枚举过程中传递给回调函数的用户自定义值
注解
通常用这个函数执行自定义的线段作图——例如,可将一条线中的其他每个像素都
设成不同的颜色。在MM_TEXT模式下,每个点都对应于设备中的一个像素——在这
种模式下,也可用这个函数进行线段中的击中测试。线段中的最后一个点不会枚举
出来
_______________________________________________________
LineTo
VB声明
Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long,
ByVal x As Long, ByVal y As Long) As Long
说明
用当前画笔画一条线,从当前位置连到一个指定的点。这个函数调用完毕,当前位
置变成x,y点
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,设备场景的句柄
x,y Long,线段终点位置,采用逻辑坐标表示。这个点不会实际画出来;它不属于
线段的一部分
注解
如重复调用这个函数和一个几何画笔,从而创建一系列线段,那么除非在一个路径
的场景中调用,否则不会认为这些线段已结合到一起
_______________________________________________________________
MoveToEx
VB声明
Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As
Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long
说明
为指定的设备场景指定一个新的当前画笔位置。前一个位置保存在lpPoint中
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,指向一个设备场景的句柄
x,y Long,采用逻辑坐标表示的新画笔位置
lpPoint POINTAPI,用于保存前一个画笔位置。可以为NULL(将参数改为ByVal As
Long,以传递一个空参数)
注解
在一个路径分支中描绘的时候,这个函数会创建一个新的子路径
_______________________________________________________
PaintDesktop
VB声明
Declare Function PaintDesktop Lib "user32" Alias "PaintDesktop" (ByVal
hdc As Long) As Long
说明
在指定的设备场景中描绘桌面墙纸图案
返回值
Long,TRUE(非零)表示成功,否则返回零
参数表
参数 类型及说明
hdc Long,要在其中填充的设备场景
______________________________________________________
PathToRegion
VB声明
Declare Function PathToRegion Lib "gdi32" Alias "PathToRegion" (ByVal
hdc As Long) As Long
说明
将当前选定的路径转换到一个区域里
返回值
Long,新区域的句柄。零表示错误。会将GetLastError设为下述值之一:
ERROR_CAN_NOT_COMPLETE,ERROR_INVALID_PARAMETER,ERROR_NOT_ENOUGH_MEMORY
参数表
参数 类型及说明
hdc Long,包含了欲转换的路径的设备场景
注解
函数执行完毕后,路径会自动清除
________________________________________________________
Pie
VB声明
Declare Function Pie Lib "gdi32" Alias "Pie" (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) 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,指定饼图的另一个斜边
注解
在win95和win16中,约束矩形的宽度和高度必须在3-32766之间
参考Arc函数
__________________________________________________
Pie
VB声明
Declare Function Pie Lib "gdi32" Alias "Pie" (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) 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,指定饼图的另一个斜边
注解
在win95和win16中,约束矩形的宽度和高度必须在3-32766之间
参考Arc函数
___________________________________________________
PlayEnhMetaFile
VB声明
Declare Function PlayEnhMetaFile Lib "gdi32" Alias "PlayEnhMetaFile"
(ByVal hdc As Long, ByVal hemf As Long, lpRect As RECT) As Long
说明
在指定的设备场景中画一个增强型图元文件。与标准图元文件不同,完成回放后,
增强型图元文件会恢复设备场景以前的状态
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,目标设备场景
hemf Long,欲描绘的增强型图元文件的句柄
lpRect RECT,一个约束矩形,定义了在哪里描绘图元文件
_____________________________________________________
PlayEnhMetaFileRecord
VB声明
Declare Function PlayEnhMetaFileRecord Lib "gdi32" Alias
"PlayEnhMetaFileRecord" (ByVal hdc As Long, lpHandletable As
HANDLETABLE, lpEnhMetaRecord As ENHMETARECORD, ByVal nHandles As Long)
As Long
说明
回放单独一条增强型图元文件记录。可与EnumEnhMetaFile函数联合使用,只回放
选定的图元文件记录。这个函数的参数设置与那些由EnumMetaFile回调函数返回的
值是相似的
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,欲在其中绘图的设备场景
lpHandletable HANDLETABLE,使用的句柄的一个数组(An array of handles
used.)
lpEnhMetaRecord ENHMETARECORD,一个特定的结构(或指向结构的指针),包含
了增强型图元文件记录
nHandles Long,句柄表中的句柄数量
___________________________________________________
PlayMetaFile
VB声明
Declare Function PlayMetaFile Lib "gdi32" Alias "PlayMetaFile" (ByVal
hdc As Long, ByVal hMF As Long) As Long
说明
在指定的设备场景中回放一个图元文件。图元文件中记录的GDI操作会针对设备场
景而执行
返回值
Long,
参数表
参数 类型及说明
hdc Long,要在其中回放图元文件的一个设备场景的句柄
hMF Long,欲回放的一个图元文件的句柄
注解
在vb里,图元文件有能力改变一个设备场景的对象及映射模式。注意在调用这个函
数之前,必须保存一个vb窗体或图片控件设备场景的状态
____________________________________________________________
PlayMetaFileRecord
VB声明
Declare Function PlayMetaFileRecord Lib "gdi32" Alias
"PlayMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE,
lpMetaRecord As METARECORD, ByVal nHandles As Long) As Long
说明
回放来自图元文件的单条记录(每条记录都包含了单个GDI绘图命令)。可与
EnumMetaFile函数联合使用,只回放那些选定的图元文件记录。这个函数的参数与
那些由EnumMetaFile回调函数返回的值相似
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,欲在其中回放图元文件记录GDI命令的一个设备场景的句柄
lpHandletable HANDLETABLE,一个整数数组的第一个条目,该数组用于容纳图元
文件使用的GDI对象的句柄
lpMetaRecord METARECORD,指定单条图元文件记录
nHandles Long,图元文件句柄表格中的句柄数目
______________________________________________
PolyBezier, PolyBezierTo
VB声明
Declare Function PolyBezier& Lib "gdi32" (ByVal hdc As Long, lppt As
POINTAPI, ByVal cPoints As Long)
Declare Function PolyBezierTo& Lib "gdi32" (ByVal hdc As Long, lppt As
POINTAPI, ByVal cCount As Long)
说明
描绘一条或多条贝塞尔(Bezier)曲线。PolyBezierTo用于将当前画笔位置设为前
一条曲线的终点
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hdc Long,要在其中绘图的设备场景
lppt POINTAPI,指定一个POINTAPI结构数组。其中的第一个结构指定了起点。剩
下的点三个一组——包括两个控件点和一个终点
原文:An array of POINTAPI structures. The first structure specifies the
starting point. The remaining points are in groups of three, consisting
of two control points and an end point.
cPoints Long,lppt数组的总点数
├┝┞┟┠┡┢┣ ※↑
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: jxjdadmin.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:207.434毫秒