VB 版 (精华区)
发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标 题: 绘图函数2
发信站: 哈工大紫丁香 (2000年08月06日10:22:01 星期天), 转信
目录
CreatePatternBrush 用指定了刷子图案的一幅位图创建一个刷子
CreatePen 用指定的样式、宽度和颜色创建一个画笔
CreatePenIndirect 根据指定的LOGPEN结构创建一个画笔
CreateSolidBrush 用纯色创建一个刷子
DeleteEnhMetaFile 删除指定的增强型图元文件
DeleteMetaFile 删除指定的图元文件
DeleteObject 删除GDI对象,对象使用的所有系统资源都会被释放
DrawEdge 用指定的样式描绘一个矩形的边框
DrawEscape 换码(Escape)函数将数据直接发至显示设备驱动程序
DrawFocusRect 画一个焦点矩形
DrawFrameControl 描绘一个标准控件
DrawState 为一幅图象或绘图操作应用各式各样的效果
Ellipse 描绘一个椭圆,由指定的矩形围绕
EndPath 停止定义一个路径
EnumEnhMetaFile 针对一个增强型图元文件,列举其中单独的图元文件记录
EnumMetaFile 为一个标准的windows图元文件枚举单独的图元文件记录
_______________________________________________________________
CreatePatternBrush
VB声明
Declare Function CreatePatternBrush Lib "gdi32" Alias
"CreatePatternBrush" (ByVal hBitmap As Long) As Long
说明
用指定了刷子图案的一幅位图创建一个刷子
返回值
Long,如执行成功,则返回新刷子的一个句柄;否则返回零
参数表
参数 类型及说明
hBitmap Long,指向一幅位图的句柄。如指定了单色位图,文本和背景色就会在图
案中使用
注解
一旦刷子不再需要,记得用DeleteObject函数将其删除。不要在这个函数里使用作
为DIB分区创建的位图
______________________________________________________
CreatePen
VB声明
Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal
nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As
Long
说明
用指定的样式、宽度和颜色创建一个画笔
返回值
Long,如函数执行成功,就返回指向新画笔的一个句柄;否则返回零
参数表
参数 类型及说明
nPenStyle Long,指定画笔样式,可以是下述常数之一
PS_SOLID 画笔画出的是实线
PS_DASH 画笔画出的是虚线(nWidth必须是1)
PS_DOT 画笔画出的是点线(nWidth必须是1)
PS_DASHDOT 画笔画出的是点划线(nWidth必须是1)
PS_DASHDOTDOT 画笔画出的是点-点-划线(nWidth必须是1)
PS_NULL 画笔不能画图
PS_INSIDEFRAME 画笔在由椭圆、矩形、圆角矩形、饼图以及弦等生成的封闭对象
框中画图。如指定的准确RGB颜色不存在,就进行抖动处理
nWidth Long,以逻辑单位表示的画笔的宽度
crColor Long,画笔的RGB颜色
注解
一旦不再需要画笔,记得用DeleteObject函数将其删除
Top
________________________________________________
CreatePenIndirect
VB声明
Declare Function CreatePenIndirect Lib "gdi32" Alias "CreatePenIndirect"
(lpLogPen As LOGPEN) As Long
说明
根据指定的LOGPEN结构创建一个画笔
返回值
Long,如执行成功,返回指向新画笔的一个句柄;否则返回零
参数表
参数 类型及说明
lpLogPen LOGPEN,逻辑画笔结构。这个结构与CreatePen函数的参数非常接近
注解
一旦不再需要画笔,记得用DeleteObject函数将其删除
____________________________________________________
CreateSolidBrush
VB声明
Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush"
(ByVal crColor As Long) As Long
说明
用纯色创建一个刷子
返回值
Long,如执行成功,返回新刷子的一个句柄;否则返回零
参数表
参数 类型及说明
crColor Long,数字的RGB彩色
注解
一旦刷子不再需要,就用DeleteObject函数将其删除
____________________________________________________
DeleteEnhMetaFile
VB声明
Declare Function DeleteEnhMetaFile Lib "gdi32" Alias "DeleteEnhMetaFile"
(ByVal hemf As Long) As Long
说明
删除指定的增强型图元文件
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hemf Long,增强型图元文件的句柄
注解
如图元文件是建立在一个磁盘文件基础上的,那么文件本身就不会由函数删除。这
样有可能由GetEnhMetaFile函数再次将其打开
_____________________________________________--
DeleteMetaFile
VB声明
Declare Function DeleteMetaFile Lib "gdi32" Alias "DeleteMetaFile"
(ByVal hMF As Long) As Long
说明
删除指定的图元文件
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hMF Long,图元文件的句柄
注解
如图元文件是建立在一个磁盘文件基础上的,那么文件本身就不会由函数删除。这
样有可能造成由GetEnhMetaFile函数再次将其打开。然而,这个图元文件并不采用
标准可放置图元文件格式
__________________________________------
DeleteObject
VB声明
Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal
hObject As Long) As Long
说明
用这个函数删除GDI对象,比如画笔、刷子、字体、位图、区域以及调色板等等。
对象使用的所有系统资源都会被释放
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hObject Long,一个GDI对象的句柄
注解
不要删除一个已选入设备场景的画笔、刷子或位图。如删除以位图为基础的阴影(
图案)刷子,位图不会由这个函数删除——只有刷子被删掉
______________________________________________
DrawEdge
VB声明
Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As
Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long
说明
用指定的样式描绘一个矩形的边框
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError。(在vb里使用
:推荐使用。利用这个函数,我们没有必要再使用许多3D边框和面板。所以就资源
和内存的占用率来说,这个函数的效率要高得多。它可在一定程度上提升性能)
参数表
参数 类型及说明
hdc Long,要在其中绘图的设备场景
qrc RECT,要为其描绘边框的矩形
edge Long,带有前缀BDR_的两个常数的组合。一个指定内部边框是上凸还是下凹
;另一个则指定外部边框。有时能换用带EDGE_前缀的常数。
grfFlags Long,带有BF_前缀的常数的组合
注解
由于这是一个GDI函数,所以矩形坐标是逻辑坐标
_________________________________________
DrawEscape
VB声明
Declare Function DrawEscape Lib "gdi32" Alias "DrawEscape" (ByVal hdc As
Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As
String) As Long
说明
换码(Escape)函数将数据直接发至显示设备驱动程序(在vb里使用:能够使用。
但由于Escape对设备有较强的依赖性,所以除非万不得以,尽量不要用它)
返回值
Long,非零表示成功,零表示错误(QUERYESCSUPPORT换码例外;返回TRUE表示支
持特定的换码;否则返回零)
参数表
参数 类型及说明
hdc Long,显示设备的设备场景
nEscape Long,指定欲执行的换码的一个常数
cbInput Long,输入缓冲区的长度
lpszInData String,输入字串或缓冲区
注解
可用QUERYESCSUPPORT换码判断一个特定的换码是否得到当前显示驱动程序的支持
_______________________________________
DrawFocusRect
VB声明
Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal
hdc As Long, lpRect As RECT) As Long
说明
画一个焦点矩形。这个矩形是在标志焦点的样式中通过异或运算完成的(焦点通常
用一个点线表示)。如用同样的参数再次调用这个函数,就表示删除焦点矩形
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景的句柄
lpRect RECT,要在逻辑坐标中描绘的矩形
_____________________________________
DrawFrameControl
VB声明
Declare Function DrawFrameControl Lib "user32" Alias
"DrawFrameControl" (ByVal hDC As Long, lpRect As RECT, ByVal un1 As
Long, ByVal un2 As Long) As Long
说明
这个函数用于描绘一个标准控件。例如,可描绘一个按钮或滚动条的帧(原文:
This function draws a standard control. For example, you can draw the
frame of a button or scrollbar.)
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hDC Long,要在其中作画的设备场景
lpRect RECT,指定帧的位置及大小的一个矩形
un1 Long,指定帧类型的一个常数。这些常数包括DFC_BUTTON,DFC_CAPTION,
DFC_MENU,以及DFC_SCROLL
un2 Long,一个常数,指定欲描绘的帧的状态。由带有前缀DFCS_的一个常数构成
_______________________________________
DrawState
VB声明
Declare Function DrawState Lib "user32" Alias "DrawStateA" (ByVal hDC As
Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam
As Long, ByVal wParam As Long, ByVal n1 As Long, ByVal n2 As Long,
ByVal n3 As Long, ByVal n4 As Long, ByVal un As Long) As Long
说明
这个函数可为一幅图象或绘图操作应用各式各样的效果
返回值
Long,TRUE(非零)表示成功,FALSE表示失败
参数表
参数 类型及说明
hDC Long,要在其中绘图的设备场景
hBrush Long,如状态为DSS_MONO(在un参数中设定),则指定一个刷子句柄
lpDrawStateProc Long,指向一个函数地址的指针。如图象类型为DST_COMPLEX,
必须设置这个参数。对于DST_TEXT,则可设可不设
lParam Long,由图象的类型决定
wParam Long,由图象的类型决定
n1 Long,图象的水平位置
n2 Long,图象的垂直位置
n3 Long,图象的宽度。如图象类型为DST_COMPLEX,必须设置这个参数。而对于其
他类型,则可以设为零。如为零,表示该参数在图象的基础上计算
n4 Long,图象的高度。如图象类型为DST_COMPLEX,必须设置这个参数。而对于其
他类型,则可以设为零。如为零,表示该参数在图象的基础上计算
un Long,图象类型和状态的一个组合。参见下表
图象类型
DST_BITMAP lParam中的句柄
DST_COMPLEX 绘图在由lpDrawStateProc参数指定的回调函数期间执行。lParam和
wParam会传递给回调事件
DST_ICON lParam包括图标句柄
DST_TEXT lParam代表文字的地址(可使用一个字串别名),wParam代表字串的长
度
DST_PREFIXTEXT 与DST_TEXT类似,只是 & 字符指出为下各字符加上下划线
图象状态常数
DSS_NORMAL 普通图象
DSS_UNION 图象进行抖动处理
DSS_DISABLED 图象具有浮雕效果
DSS_MONO 用hBrush描绘图象
DSS_RIGHT 手册未正式说明——经实验证明没有什么作用(原文:
Undocumented-experimentation seems to show no effect.)
注解
windows95用它获得我们应用于图象的一些视觉效果;例如,可使位图或其他图象
在视觉上进入禁用或抖动状态。对于位图和图标,它在描绘位图或图标的时候应用
一种效果。对于文本,既可让函数画出文本,也可在一个回调函数中执行自己的绘
图操作。对于复杂的(用户自定义)图象,则必须用一个回调函数。在回调函数执
行过程中,用自己的代码将自己希望的任何东西画入设备场景。在这之后,利用
DrawState函数应用希望的效果
______________________________________________
Ellipse
VB声明
Declare Function Ellipse Lib "gdi32" Alias "Ellipse" (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,约束矩形采用逻辑坐标的右下角位置
_____________________________________________
EndPath
VB声明
Declare Function EndPath Lib "gdi32" Alias "EndPath" (ByVal hdc As Long)
As Long
说明
停止定义一个路径。如执行成功,BeginPath函数调用和这个函数之间发生的所有
绘图操作都会正式成为指定设备场景的路径
返回值
Long,非零表示成功,零表示失败。会将GetLastError设置为下述值之一:
ERROR_CAN_NOT_COMPLETE 或 ERROR_INVALID_PARAMETER
参数表
参数 类型及说明
hdc Long,设备场景
________________________________
EnumEnhMetaFile
VB声明
Declare Function EnumEnhMetaFile Lib "gdi32" Alias "EnumEnhMetaFile"
(ByVal hdc As Long, ByVal hemf As Long, ByVal lpEnhMetaFunc As Long,
lpData As Any, lpRect As RECT) As Long
说明
针对一个增强型图元文件,列举其中单独的图元文件记录。每条图元文件记录都由
单个GDI命令组成。可伴随PlayEnhMetaFileRecord函数使用,选择性的回放图元文
件的一部分
返回值
Long,如图元文件的所有记录都列举出来,就返回TRUE(非零);否则返回零
参数表
参数 类型及说明
hdc Long,用于输出的设备场景的句柄。只有在用回调函数进行绘图操作的时候,
才要求设置这个参数
hemf Long,欲列举的一个增强型图元文件的句柄
lpEnhMetaFunc Long,指向为每个图元文件调用的一个函数的指针
lpData 用户自定义的值
lpRect RECT,定义图元文件边框的一个矩形
___________________________________________________
EnumEnhMetaFile
VB声明
Declare Function EnumEnhMetaFile Lib "gdi32" Alias "EnumEnhMetaFile"
(ByVal hdc As Long, ByVal hemf As Long, ByVal lpEnhMetaFunc As Long,
lpData As Any, lpRect As RECT) As Long
说明
针对一个增强型图元文件,列举其中单独的图元文件记录。每条图元文件记录都由
单个GDI命令组成。可伴随PlayEnhMetaFileRecord函数使用,选择性的回放图元文
件的一部分
返回值
Long,如图元文件的所有记录都列举出来,就返回TRUE(非零);否则返回零
参数表
参数 类型及说明
hdc Long,用于输出的设备场景的句柄。只有在用回调函数进行绘图操作的时候,
才要求设置这个参数
hemf Long,欲列举的一个增强型图元文件的句柄
lpEnhMetaFunc Long,指向为每个图元文件调用的一个函数的指针
lpData 用户自定义的值
lpRect RECT,定义图元文件边框的一个矩形
_________________________________________________
EnumMetaFile
VB声明
Declare Function EnumMetaFile Lib "gdi32" Alias "EnumMetaFile" (ByVal
hDC As Long, ByVal hMetafile As Long, ByVal lpMFEnumProc As Long,
ByVal lParam As Long) As Long
说明
为一个标准的windows图元文件枚举单独的图元文件记录。每条图元文件记录都包
含了单个GDI绘图命令。可与PlayMetaFileRecord函数联合使用,选择性的回放图
元文件的某一部分
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hDC Long,用于输出的设备场景的句柄。只有在用回调函数进行绘图操作的时候,
才要求设置这个参数
hMetafile Long,欲列举的一个标准图元文件的句柄
lpMFEnumProc Long,指向为每个图元文件调用的一个函数的指针
lParam Long,用户自定义的值
--
├┝┞┟┠┡┢┣ ※↑
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: jxjdadmin.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.628毫秒