发信人: winsy(鹰派)
整理人: winsy(2003-03-10 13:31:58), 站内信件
|
CombineRgn
VB声明
Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
说明
将两个区域组合为一个新区域
返回值
Long,下列常数之一:
COMPLEXREGION:区域有互相交叠的边界
SIMPLEREGION:区域边界没有互相交叠
NULLREGION:区域为空
ERRORAPI:不能创建组合区域
参数表
参数 类型及说明
hDestRgn Long,包含组合结果的区域句柄
hSrcRgn1 Long,源区域1
hSrcRgn2 Long,源区域2
nCombineMode Long,组合两区域的方法。可设为下述常数
RGN_AND hDestRgn被设置为两个源区域的交集
RGN_COPY hDestRgn被设置为hSrcRgn1的拷贝
RGN_DIFF hDestRgn被设置为hSrcRgn1中与hSrcRgn2不相交的部分
RGN_OR hDestRgn被设置为两个区域的并集
RGN_XOR hDestRgn被设置为除两个源区域OR之外的部分
CombineTransform
VB声明
Declare Function CombineTransform Lib "gdi32" Alias "CombineTransform" (lpxformResult As xform, lpxform1 As xform, lpxform2 As xform) As Long
说明
驱动世界转换。它相当于依顺序进行两次转换
返回值
Long,执行成功为TRUE(非零),失败则为零
参数表
参数 类型及说明
lpxformResult xform,保存转换结果的结构
lpxform1 xform,按顺序的第一个结构
xform xform,按顺序的第二个结构
适用平台
Windows NT
CreateCompatibleDC
VB声明
Declare Function CreateCompatibleDC Lib "gdi32" Alias "CreateCompatibleDC" (ByVal hdc As Long) As Long
说明
创建一个与特定设备场景一致的内存设备场景
返回值
Long,新设备场景句柄,若出错则为零
参数表
参数 类型及说明
hdc Long,设备场景句柄。新的设备场景将与它一致。也可能为0以创建一个与屏幕一致的设备场景
注解
在绘制之前,先要为该设备场景选定一个位图。不再需要时,该设备场景可用DeleteDC函数删除。删除前,其所有对象应回复初始状态
CreateDC, CreateDCBynum
VB声明
Declare Function CreateDC& Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE)
Declare Function CreateDCBynum& Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Long)
说明
为专门设备创建设备场景
返回值
Long,新设备场景句柄,若出错则为零
参数表
参数 类型及说明
lpDriverName String,用vbNullString传递null值给该参数,除非:1、用DISPLAY,是获取整个屏幕的设备场景;2、用WINSPOOL,则是访问打印驱动
lpDeviceName String,所用专门设备的名称。该名由打印管理器分配显示
lpOutput String,用vbNullString传递null值给该参数
lpInitData DEVMODE,这个结构保存初始值。用CreateDCBynum传递0(NULL)值则适用默认设置
注解
在绘制之前,先要为该设备场景选定一个位图。不再需要时,该设备场景可用DeleteDC函数删除。删除前,其所有对象应回复初始状态。若有设备初始设置可用DocumentProperties API函数载入DEVMODE结构。使用屏幕设备场景(DISPLAY)时要小心,因为它会干扰其他应用程序的外观
示例:靠近屏幕左上角画一个矩形
dc& = CreateDCBynum("DISPLAY", vbNullString, vbNullString, 0)
dl& = Rectangle(dc&, 5, 5, 100, 100)
CreateEllipticRgn
VB声明
Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
说明
创建一个椭圆,该椭圆与X1,Y1和X2,Y2坐标点确定的矩形内切
返回值
Long,执行成功则为区域句柄,失败则为零
参数表
参数 类型及说明
X1,Y1 Long,矩形左上角X,Y坐标
X2,Y2 Long,矩形右下角X,Y坐标
注解
不用时一定要用DeleteObject函数删除区域。用Ellipse API函数绘出的椭圆与该椭圆区域不完全相同,因为本函数的绘图计算不包括矩形的下边和右边
CreateEllipticRgnIndirect
VB声明
Declare Function CreateEllipticRgnIndirect Lib "gdi32" Alias "CreateEllipticRgnIndirect" (lpRect As Rect) As Long
说明
创建一个内切于特定矩形的椭圆区域
返回值
Long,执行成功则返回区域句柄,失败则为零
参数表
参数 类型及说明
lpRect Long,定义要创建的椭圆区域尺寸的矩形
注解
不用时一定要用DeleteObject函数删除该区域
CreateIC
VB声明
Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long
说明
为专用设备创建一个信息场景。信息场景可用来快速获取某设备的信息而无须创建设备场景这样的系统开销。它可作为参数传递给GetDeviceCaps一类的信息函数以替代设备场景参数
返回值
Long,执行成功为信息场景句柄,失败则为零
参数表
参数 类型及说明
lpDriverName String,用vbNullString传递null值给该参数,除非:1、用DISPLAY,是获取整个屏幕的设备场景;2、用WINSPOOL,则是访问打印驱动
lpDeviceName String,所用专门设备的名称。该名由打印管理器分配显示
lpOutput String,用vbNullString传递null值给该参数
lpInitData DEVMODE,这个结构保存初始值
注解
Long,不用时一定要用DeleteDC函数删除设备场景。进一步的说明参考CreateDC函数
示例:为一个名为“Color Stylus”的打印机取回信息场景
dc& = CreateICBynum("WINSPOOL", "Color Stylus", vbNullString,0)
CreatePolygonRgn
VB声明
Declare Function CreatePolygonRgn Lib "gdi32" Alias "CreatePolygonRgn" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
说明
创建一个由一系列点围成的区域。windows在需要时自动将最后点与第一点相连以封闭多边形
返回值
Long,执行成功为创建的区域句柄,失败则为0
参数表
参数 类型及说明
lpPoint POINTAPI,nCount个POINTAPI结构中的第一个POINTAPI结构
nCount Long,多边形的点数
nPolyFillMode Long,描述多边形填充模式。可为ALTERNATE 或 WINDING常数。参考SetPolyFillMode函数对多边形填充模式的解释
注解
不用时一定要用DeleteObject函数删除该区域
CreatePolyPolygonRgn
VB声明
Declare Function CreatePolyPolygonRgn Lib "gdi32" Alias "CreatePolyPolygonRgn" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
说明
创建由多个多边形构成的区域。每个多边形都应是封闭的
返回值
Long,执行成功则为创建区域的句柄,失败则为零
参数表
参数 类型及说明
lpPoint POINTAPI,nCount个POINTAPI结构中的第一个POINTAPI结构
lpPolyCounts Long,长整数阵列的第一个入口。每个入口包含构成一个封闭多边形的点数。lpPoint阵列组成了一系列多边形,每个多边形在lpPolyCounts中有一个入口
nCount Long,多边形的点数
nPolyFillMode Long,描述多边形填充模式。可为ALTERNATE 或 WINDING常数。参考SetPolyFillMode函数对多边形填充模式的解释
注解
不用时一定要用DeleteObject函数删除该区域
CreateRectRgn
VB声明
Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
说明
创建一个由点X1,Y1和X2,Y2描述的矩形区域
返回值
Long,执行成功为区域句柄,失败则为零
参数表
参数 类型及说明
X1,Y1 Long,矩形左上角X,Y坐标
X2,Y2 Long,矩形右下角X,Y坐标
注解
不用时一定要用DeleteObject函数删除该区域
这个矩形的下边和右边不包含在区域之内
CreateRectRgnIndirect
VB声明
Declare Function CreateRectRgnIndirect Lib "gdi32" Alias "CreateRectRgnIndirect" (lpRect As ) As Long
说明
创建一个由lpRect确定的矩形区域
返回值
Long,执行成功则为区域句柄,失败则为0
参数表
参数 类型及说明
lpRect RECT,要用来创建区域的矩形
注解
参考CreateRectRgn的注解
CreateRoundRectRgn
VB声明
Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (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
说明
创建一个圆角矩形,该矩形由X1,Y1-X2,Y2确定,并由X3,Y3确定的椭圆描述圆角弧度
返回值
Long,执行成功则为区域句柄,失败则为0
参数表
参数 类型及说明
X1,Y1 Long,矩形左上角的X,Y坐标
X2,Y2 Long,矩形右下角的X,Y坐标
X3 Long,圆角椭圆的宽。其范围从0(没有圆角)到矩形宽(全圆)
Y3 Long,圆角椭圆的高。其范围从0(没有圆角)到矩形高(全圆)
注解
不用时一定要用DeleteObject函数删除该区域
用该函数创建的区域与用RoundRect API函数画的圆角矩形不完全相同,因为本矩形的右边和下边不包括在区域之内
DeleteDC
VB声明
Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long
说明
删除专用设备场景或信息场景,释放所有相关窗口资源。不要将它用于GetDC函数取回的设备场景
返回值
Long,执行成功则为非零,失败则为零
参数表
参数 类型及说明
hdc Long,将要删除的设备场景
注解
若有对象被选入设备场景,则在调用本函数前应将它们选出。为此,可将初始对象回选入DC,也可用SaveDC, RestoreDC函数对回复DC为其创建时的状态
在vb里使用
不要将它用于由vb hdc属性获取的设备场景句柄
DPtoLP
VB声明
Declare Function DPtoLP Lib "gdi32" Alias "DPtoLP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
说明
将点阵从设备坐标转换到专用设备场景逻辑坐标
返回值
Long,执行成功为非零值,失败则为零
参数表
参数 类型及说明
hdc Long,确定逻辑坐标系统的设备场景句柄
lpPoint POINTAPI,包含有设备坐标点的一个或多个POINTAPI结构的第一入口。每个入口都将被转换为逻辑坐标(若为世界转换则转换为世界坐标)
nCount Long,lpPoint阵列中的入口数
EqualRgn
VB声明
Declare Function EqualRgn Lib "gdi32" Alias "EqualRgn" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long
说明
确定两个区域是否相等
返回值
Long,若两区域相等为非零值。若不等为0。若有一个区域无效则返回ERRORAPI
参数表
参数 类型及说明
hSrcRgn1 Long,一个区域的句柄
hSrcRgn2 Long,区域句柄
ExcludeClipRect
VB声明
Declare Function ExcludeClipRect Lib "gdi32" Alias "ExcludeClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
说明
从专用设备场景的剪裁区中去掉一个由点X1,Y1和X2,Y2确定的矩形区。矩形内不能进行绘图
返回值
Long,返回以下常数之一以描述所得剪裁区:
COMPLEXREGION:区域边界互相交叠
SIMPLEREGION:区域边界没有互相交叠
NULLREGION:区域为空
ERRORAPI:发生了错误
参数表
参数 类型及说明
hdc Long,要修改的设备场景
X1,Y1 Long,矩形(逻辑坐标)左上角的X,Y坐标
X2,Y2 Long,矩形(逻辑坐标)右下角的X,Y坐标,矩形的右边和下边不会从剪裁区中移走
|
|