VB 版 (精华区)

发信人: bloom (├┝┞┟┠┡┢┣), 信区: VB
标  题: 绘图函数3
发信站: 哈工大紫丁香 (2000年08月06日10:27:00 星期天), 转信

                   目录
 
EnumObjects 枚举可随同指定设备场景使用的画笔和刷子 
ExtCreatePen 创建一个扩展画笔(装饰或几何) 
ExtFloodFill 在指定的设备场景里,用当前选择的刷子填充一个区域 
FillPath 关闭路径中任何打开的图形,并用当前刷子填充 
FillRect 用指定的刷子填充一个矩形 
FlattenPath 将一个路径中的所有曲线都转换成线段 
FloodFill 用当前选定的刷子在指定的设备场景中填充一个区域 
FrameRect 用指定的刷子围绕一个矩形画一个边框 
GdiComment 为指定的增强型图元文件设备场景添加一条注释信息 
GdiFlush 执行任何未决的绘图操作 
GdiGetBatchLimit 判断有多少个GDI绘图命令位于队列中 
GdiSetBatchLimit 指定有多少个GDI绘图命令能够进入队列 
GetArcDirection 画圆弧的时候,判断当前采用的绘图方向 
GetBkColor 取得指定设备场景当前的背景颜色 
GetBkMode 针对指定的设备场景,取得当前的背景填充模式 
GetBrushOrgEx 判断指定设备场景中当前选定刷子起点 
____________________________________________________
EnumObjects 

VB声明 
Declare Function EnumObjects Lib "gdi32" Alias "EnumObjects" (ByVal 
hDC As Long, ByVal n As Long, ByVal lpGOBJEnumProc As Long, lpVoid As 
Any) As Long 
说明 
枚举可随同指定设备场景使用的画笔和刷子 
返回值 
Long,如函数要枚举的对象太多,就返回-1。否则由用户自己定义 
参数表 
参数 类型及说明 
hDC Long,设备场景的句柄 
n Long,欲枚举的对象的类型。请查找带OBJ_前缀的常数,这样可得到一个对象列
表。win32手册建议只使用OBJ_PEN和OBJ_BRUSH两个常数 
lpGOBJEnumProc Long,指向为每个GDI对象调用的指针 
lpVoid 枚举过程中传递给回调函数的值 
_____________________________________________---
ExtCreatePen 

VB声明 
Declare Function ExtCreatePen Lib "gdi32" Alias "ExtCreatePen" (ByVal 
dwPenStyle As Long, ByVal dwWidth As Long, lplb As LOGBRUSH, ByVal 
dwStyleCount As Long, lpStyle As Long) As Long 
说明 
创建一个扩展画笔(装饰或几何) 
返回值 
Long,如执行成功,返回一个指向扩展画笔的句柄。零表示执行出错。一旦不再需
要,记得用DeleteObject将画笔删除 
参数表 
参数 类型及说明 
dwPenStyle Long,画笔样式来自下述常数组的任何一个常数的组合(OR运算):
 
PS_COSMETIC or PS_GEOMETRIC 画笔的类型 
PS_ALTERNATE, PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, 
PS_NULL, PS_USERSTYLE, PS_INSIDEFRAME 画笔的样式 
PS_ENDCAP_??? 画笔的笔尖 
PS_JOIN_??? 在图形中连接线段或在路径中连接直线的方式 
dwWidth Long,指定线宽。几何画笔的线宽肯定是1 
lplb LOGBRUSH,lbColor代表画笔颜色。对于装饰画笔,lbStyle为PS_SOLID;对
于几何画笔,lbStyle则代表实际的样式。针对几何画笔,必须设置其他所有字体
 
dwStyleCount Long,如指定了PS_USERSTYLE,则代表lpStyle数组中的条目数量 

lpStyle Long,指定PS_USERSTYLE的“线段/空白”对(原文:Line/space 
pairs for PS_USERSTYLE) 

Top
 
_______________________________________
ExtFloodFill 

VB声明 
Declare Function ExtFloodFill Lib "gdi32" Alias "ExtFloodFill" (ByVal 
hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, 
ByVal wFillType As Long) As Long 
说明 
在指定的设备场景里,用当前选择的刷子填充一个区域 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
x,y Long,开始填充的一个点,采用逻辑坐标表示 
crColor Long,要使用的边界颜色 
wFillType Long,欲执行的填充类型,由下述任何一个常数决定 
FLOODFILLBORDER 等同于FloodFill函数的功能 
FLOODFILLSURFACE 从指定的点向外填充,只到找到了crColor颜色(在边框采用了
多种颜色时使用) 
注解 
如指定了FLOODFILLBORDER,那么x,y点绝对不能为crColor颜色。如指定了
FLOODFILLSURFACE,那么x,y点必须是crColor颜色。这个函数只能在光栅设备中使
用。可用GetDeviceCaps函数判断设备是否支持这个函数
 
提示 
一旦指定了FLOODFILLBORDER,务必保证初始点的颜色没有crColor。如果使用的是
FLOODFILLSURFACE,务必保证初始点有颜色crColor(这是函数执行失败最常见的
两个原因)。注意保证初始点位于剪切区内 

Top
 
_______________________________________________
FillPath 

VB声明 
Declare Function FillPath Lib "gdi32" Alias "FillPath" (ByVal hdc As 
Long) As Long 
说明 
关闭路径中任何打开的图形,并用当前刷子填充 
返回值 
Long,非零表示成功,零表示失败。会将GetLastError设置为下述值之一:
ERROR_CAN_NOT_COMPLETE,ERROR_INVALID_PARAMETER,ERROR_NOT_ENOUGH_MEMORY
 
参数表 
hdc Long,欲在其中操作的设备场景 
注解 
函数执行完毕后,选定的路径会自行清除
 
_____________________________
FillRect 

VB声明 
Declare Function FillRect Lib "user32" Alias "FillRect" (ByVal hdc As 
Long, lpRect As RECT, ByVal hBrush As Long) As Long 
说明 
用指定的刷子填充一个矩形 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpRect RECT,对填充区域进行描述的一个矩形,采用逻辑坐标 
hBrush Long,欲使用的刷子的句柄 
注解 
矩形的右边和底边不会描绘
 
_____________________________________
FlattenPath 

VB声明 
Declare Function FlattenPath Lib "gdi32" Alias "FlattenPath" (ByVal 
hdc As Long) As Long 
说明 
将一个路径中的所有曲线都转换成线段 
返回值 
Long,非零表示成功,零表示失败。会将GetLastError设置为下述值之一:
ERROR_CAN_NOT_COMPLETE,ERROR_INVALID_PARAMETER,ERROR_NOT_ENOUGH_MEMORY
 
参数表 
参数 类型及说明 
hdc Long,包含了路径的设备场景 
_____________________________________________----
FloodFill 

VB声明 
Declare Function FloodFill Lib "gdi32" Alias "FloodFill" (ByVal hdc As 
Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long 

说明 
用当前选定的刷子在指定的设备场景中填充一个区域。区域是由颜色crColor定义
的 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
x,y Long,开始填充的那个点,用逻辑坐标表示 
crColor Long,欲使用的边界颜色。由这个颜色包围的表面会被填充 
注解 
点x,y绝对不能有颜色crColor,而且必须在剪切区域内。这个函数只对光栅设备有
效,请参考ExtFloodFill的注解
 
________________________________________________-----
FrameRect 

VB声明 
Declare Function FrameRect Lib "user32" Alias "FrameRect" (ByVal hdc 
As Long, lpRect As RECT, ByVal hBrush As Long) As Long 
说明 
用指定的刷子围绕一个矩形画一个边框(组成一个帧),边框的宽度是一个逻辑单
位 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
lpRect RECT,对要描绘的边框进行描述的一个矩形。这等效于将画笔设成一个单
位的宽度,然后用矩形函数画出一个矩形 
hBrush Long,欲使用的刷子的句柄 
注解 
lpRect的顶部边距值必须小于底部边距值。lpRect的左侧边距值必须小于右侧边距

 
__________________________________________________
GdiComment 

VB声明 
Declare Function GdiComment Lib "gdi32" Alias "GdiComment" (ByVal hdc As
 Long, ByVal cbSize As Long, lpData As Byte) As Long 
说明 
为指定的增强型图元文件设备场景添加一条注释信息 
返回值 
Long,非零表示成功,零表示失败 
参数表 
参数 类型及说明 
hdc Long,目标增强型图元文件设备场景的句柄 
cbSize Long,欲嵌入图元文件的数据长度 
lpData Byte,一个注释结构或一个缓冲区的Long内存地址,其中包含了欲添加的
注释正文 
注解 
尽管可在图元文件中嵌入任何专用或私有(Private)信息,但只有几种全局数据
格式能够嵌入。如将缓冲区看作一个32位Long型值的数组,则全局注释的值就是下
面这个样子:
第一个条目是常数GDICOMMENT_IDENTIFIER
第二个条目如下所示:
首先是一个GDICOMMENT_WINDOWS_METAFILE——在增强型图元文件中嵌入一个标准
图元文件。它的后面跟随下述值之一:
□  标准图元文件的版本号
□  一个校验和(checksum)值:所有图元文件数据的总和——包括这个值——必
须是零
□  零
□  后面跟随的窗口图元文件的大小
GDICOMMENT_BEGINGROUP——标志一组绘图命令在增强型图元文件在中的起始处。
它的后面跟随:
□  四个Long值。定义一个RECT结构。结构中包含了绘图命令的约束矩形
□  可选的Unicode字串的长度。字串中包含对命令组的说明文字。如不想提供说
明,可设为零
GDICOMMENT_ENDGROUP——标志增强型图元文件中的一组绘图命令的结尾
GDICOMMENT_MULTIFORMATS——以不同的格式嵌入一幅处理过的图象。例如,可利
用这个注释在一个增强型图元文件中嵌入一个封装式PostScript图象。回放这条记
录的时候,windows会重画它能描绘的第一组格式。它的后面跟随:
□  四个Long值。定义一个RECT结构。结构中包含了绘图命令的约束矩形
□  包括在注释中的格式数量
□  一系列EMRFORMAT结构,每种格式使用一个
 

Top
 
_____________________________________________________________
GdiFlush 

VB声明 
Declare Function GdiFlush Lib "gdi32" Alias "GdiFlush" () As Long 
说明 
执行任何未决的绘图操作 
返回值 
Long,如所有未决的绘图操作都成功完成,就返回TRUE(非零)。如任何一个操作
失败,就返回零值 
注解 
通过成批合并绘图操作命令,win32图形子系统(GDI)可改善绘图的性能。如调用
一系列绘图命令,他们都返回布尔值(TRUE表示成功,零表示失败),就可将他们
置于一个内部GDI队列里。此时,函数可以立即返回。随后,GDI子系统会执行这些
待决的绘图命令。可考虑一种最常见的情况。在这种情况下,系统安装了一块显示
卡。卡上自带图形处理器或加速器。画图的时候,GDI只需将图形命令简单的发送
给显示卡,另其完成实际的操作。如果必须等待每个绘图命令都完成并返回,系统
和应用程序的性能就会受到显示卡绘图速度的极大限制。所以在这个时候,GDI将
绘图命令置于一个名为“批”(Batch)的队列里。这样一来,系统和应用程序就
能继续运行,同时仍然让显示卡进行绘图操作

GdiFlush命令指示应用程序进入等待状态,直到所有待决的绘图操作完成为止。如
执行的是一个特殊的GDI绘图命令,它不会返回一个布尔值,那么也会面临这种情
况。例如,GetPixel函数需要读取一个像素值。但除非所有待决的绘图完成,否则
该函数不能可靠的完成工作
 
____________________________________
GdiGetBatchLimit 

VB声明 
Declare Function GdiGetBatchLimit Lib "gdi32" Alias "GdiGetBatchLimit" 
() As Long 
说明 
判断有多少个GDI绘图命令位于队列中 
返回值 
Long,待决绘图命令的最大数量,零表示出错。会设置GetLastError 
注解 
参考对GdiFlush的注解
 
__________________________________
GdiSetBatchLimit 

VB声明 
Declare Function GdiSetBatchLimit Lib "gdi32" Alias "GdiSetBatchLimit" 
(ByVal dwLimit As Long) As Long 
说明 
指定有多少个GDI绘图命令能够进入队列 
返回值 
Long,如执行成功,返回前一个限制;零表示出错。会设置GetLastError 
参数表 
参数 类型及说明 
dwLimit Long,可排队的绘图操作最大数量;0意味着恢复默认值;1表示禁止绘图
命令排队 
注解 
参考对GdiFlush的注解
 
____________________________________________________
GetArcDirection 

VB声明 
Declare Function GetArcDirection Lib "gdi32" Alias "GetArcDirection" 
(ByVal hdc As Long) As Long 
说明 
画圆弧的时候,判断当前采用的绘图方向 
返回值 
Long,常数AD_COUNTERCLOCKWISE(逆时针)或AD_CLOCKWISE(顺时针),零表示
出错 
参数表 
参数 类型及说明 
hdc Long,要查询的设备场景 
_____________________________________
GetBkColor 

VB声明 
Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As
 Long) As Long 
说明 
取得指定设备场景当前的背景颜色 
返回值 
Long,当前背景色的RGB颜色值 
参数表 
参数 类型及说明 
hdc Long,欲查询背景颜色的一个设备场景 
______________________________________
GetBkMode 

VB声明 
Declare Function GetBkMode Lib "gdi32" Alias "GetBkMode" (ByVal hdc As 
Long) As Long 
说明 
针对指定的设备场景,取得当前的背景填充模式 
返回值 
Long,下述常数之一,零意味着出错 
OPAQUE 将文本、阴影刷以及虚线画笔线段的背景设为当前的背景色 
TRANSPARENT 不修改文本、阴影刷以及虚线画笔线段的背景 
参数表 
参数 类型及说明 
hdc Long,设备场景的句柄 
_________________________________
GetBrushOrgEx 

VB声明 
Declare Function GetBrushOrgEx Lib "gdi32" Alias "GetBrushOrgEx" 
(ByVal hDC As Long, lpPoint As POINTAPI) As Long 
说明 
判断指定设备场景中当前选定刷子起点 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hDC Long,设备场景的句柄 
lpPoint POINTAPI,这个结构用来装载当前刷子的起点 


├┝┞┟┠┡┢┣ ※↑

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: jxjdadmin.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:210.906毫秒