VB 版 (精华区)

发信人: bloom (小石头长大了), 信区: VB
标  题: 设备场景函数(4) 
发信站: 哈工大紫丁香 (2000年07月23日17:10:19 星期天), 转信

          目录
OffsetWindowOrgEx 平移指定设备场景窗口起点
PaintRgn 用当前刷子背景色填充指定区域
PtInRegion 确定点是否在指定区域内
PtVisible 确定指定点是否可见(即,点是否在设备场景剪裁区内)
RectInRegion 确定矩形是否有部分在指定区域内
RectVisible 确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
ReleaseDC 释放由调用GetDC或GetWindowDC函数获取的指定设备场景
RestoreDC 从设备场景堆栈恢复一个原先保存的设备场景
SaveDC 将指定设备场景状态保存到Windows设备场景堆栈
ScaleViewportExtEx 缩放设备场景视口的范围
ScaleWindowExtEx 缩放指定设备场景窗口范围
ScrollDC 在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
SelectClipRgn 为指定设备场景选择新的剪裁区
SetBoundsRect 设置指定设备场景的边界矩形
SetGraphicsMode 允许或禁止增强图形模式,以提供某些支持(包括世界转换)
SetMapMode 设置指定设备场景的映射模式
______________________________________________________________________
OffsetWindowOrgEx
VB声明
Declare Function OffsetWindowOrgEx Lib "gdi32" Alias "OffsetWindowOrgEx" (By
Val hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As
 Long
说明
平移指定设备场景窗口起点
返回值
Long,执行成功为非零值,失败为0
参数表
参数 类型及说明
hdc Long,设备场景句柄
nX,nY Long,以逻辑坐标表示的窗口起点
lpPoint POINTAPI,装载DC窗口原有的起点的的结构,以逻辑坐标表示
________________________________________________________________
PaintRgn
VB声明
Declare Function PaintRgn Lib "gdi32" Alias "PaintRgn" (ByVal hdc As Long, B
yVal hRgn As Long) As Long
说明
用当前刷子背景色填充指定区域
返回值
Long,执行成功为非零值,失败为0
参数表
参数 类型及说明
hdc Long,设备场景句柄
hRgn Long,将填充的区域句柄
____________________________________________
PtInRegion
VB声明
Declare Function PtInRegion Lib "gdi32" Alias "PtInRegion" (ByVal hRgn As Lo
ng, ByVal x As Long, ByVal y As Long) As Long
说明
确定点是否在指定区域内
返回值
Long,若点在区域内为非零值,否则为0
参数表
参数 类型及说明
hRgn Long,区域句柄
x Long,以逻辑坐标表示的点的X坐标
y Long,以逻辑坐标表示的点的Y坐标
在vb里使用
在测试复杂图象时非常有用
______________________________________________
PtVisible
VB声明
Declare Function PtVisible Lib "gdi32" Alias "PtVisible" (ByVal hdc As Long,
 ByVal x As Long, ByVal y As Long) As Long
说明
确定指定点是否可见(即,点是否在设备场景剪裁区内)
返回值
Long,若点在指定设备场景剪裁区内为非零值,否则为0
参数表
参数 类型及说明
hdc Long,设备场景句柄
x Long,要检查的点的x,y坐标
y
_______________________________________________
RectInRegion
VB声明
Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn A
s Long, lpRect As RECT) As Long
说明
确定矩形是否有部分在指定区域内
返回值
Long,若矩形有部分在指定区域内为非零值,否则为0
参数表
参数 类型及说明
hRgn Long,区域句柄
lpRect RECT,要测试的矩形结构
注解
矩形的底边和右边不包括在lpRect内
_________________________________________
RectVisible
VB声明
Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As L
ong, lpRect As RECT) As Long
说明
确定指定矩形是否有部分可见(是否在设备场景剪裁区内)
返回值
Long,矩形有部分在指定设备场景剪裁区内为非零值,否则为零
参数表
参数 类型及说明
hdc Long,设备场景句柄
lpRect RECT,用于测试是否可见的矩形(用逻辑坐标)
注解
矩形的底边和右边不包括在lpRect内
_____________________________________
ReleaseDC
VB声明
Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Lon
g, ByVal hdc As Long) As Long
说明
释放由调用GetDC或GetWindowDC函数获取的指定设备场景。它对类或私有设备场景无效
(但这样的调用不会造成损害)
返回值
Long,执行成功为1,否则为0
参数表
参数 类型及说明
hwnd Long,要释放的设备场景相关的窗口句柄
hdc Long,要释放的设备场景句柄
注解
对那些用CreateDC一类的DC创建函数生成的设备场景,不要用本函数
_________________________________________________________________
RestoreDC
VB声明
Declare Function RestoreDC Lib "gdi32" Alias "RestoreDC" (ByVal hdc As Long,
 ByVal nSavedDC As Long) As Long
说明
从设备场景堆栈恢复一个原先保存的设备场景
返回值
Long,执行成功为非零值,失败为0
参数表
参数 类型及说明
hdc Long,将恢复的设备场景句柄
nSavedDC Long,将恢复的设备场景ID号,它由SaveDC函数返回。若为-1,则恢复最近的
设备场景
注解
若nSavedDC所指的不是栈顶的DC,则栈中nSavedDC之上的所有设备场景都要从栈中移出
,详情参见SaveDC函数
______________________________________________________________
SaveDC
VB声明
Declare Function SaveDC Lib "gdi32" Alias "SaveDC" (ByVal hdc As Long) As Lo
ng
说明
将指定设备场景状态保存到Windows设备场景堆栈。DC的映射模式、窗口和视口缩放、剪
裁区、所选对象列表都要保存。本函数通常在要对设备场景作临时改动时使用,DC属性
可用RestoreDC函数恢复
返回值
Long,一个代表该设备场景的整数,据此可用RestoreDC函数恢复。出错则为0
参数表
参数 类型及说明
hdc Long,要保存的设备场景句柄
注解
设备场景被保存到内部堆栈,这意味着可多次保存一个设备场景状态。例如,您可在进
入某个函数时保存设备场景,在其中完成某些api调用,再保存一次,作更多的调用后,
恢复前一状态,再作其他api函数调用,最后退出该函数前恢复原有设备场景状态。可保
存的设备场景个数仅受限于内存大小
__________________________________________________
ScaleViewportExtEx
VB声明
Declare Function ScaleViewportExtEx Lib "gdi32" Alias "ScaleViewportExtEx" (
ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum A
s Long, ByVal nYdenom As Long, lpSize As SIZE) As Long
说明
缩放设备场景视口的范围
返回值
Long,执行成功为非零值,失败为0
参数表
参数 类型及说明
hdc Long,设备场景句柄
nXnum,nYnum Long,当前X,Y范围将与本数值相乘
nXdenom,nYdenom Long,当前X,Y范围将被本数值除
lpSize SIZE,装载原有水平和垂直视口范围的结构
注解
本函数仅在MM_ISOTROPIC 和 MM_ANISOTROPIC映射模式下有效,在MM_ISOTROPIC模式,
要在设置视口范围之前设置窗口范围
________________________
ScaleWindowExtEx
VB声明
Declare Function ScaleWindowExtEx Lib "gdi32" Alias "ScaleWindowExtEx" (ByVa
l hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Lo
ng, ByVal nYdenom As Long, lpSize As SIZE) As Long
说明
缩放指定设备场景窗口范围
返回值
Long,执行成功为非零值,失败为0
参数表
参数 类型及说明
hdc Long,设备场景句柄
nXnum,nYnum Long,当前X,Y范围将与本数值相乘
nXdenom,nYdenom Long,当前X,Y范围将被本数值除
lpSize SIZE,装载原有水平和垂直视口范围的结构
注解
本函数仅在MM_ISOTROPIC 和 MM_ANISOTROPIC映射模式下有效,在MM_ISOTROPIC模式,
要在设置视口范围之前设置窗口范围
_____________________________________________
ScrollDC
VB声明
Declare Function ScrollDC Lib "user32" Alias "ScrollDC" (ByVal hdc As Long, 
ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, By
Val hrgnUpdate As Long, lprcUpdate As RECT) As Long
说明
在窗口(由设备场景代表)中水平和(或)垂直滚动矩形
返回值
Long,执行成功为非零值,失败为0,并设置GetLastError
参数表
参数 类型及说明
hdc Long,设备场景句柄
dx Long,将滚动的水平单位
dy Long,将滚动的垂直单位
lprcScroll RECT,要滚动的矩形
lprcClip RECT,定义剪裁区的矩形,滚动只能在该区内进行
hrgnUpdate Long,该区域设置为客户坐标系统中不被滚动操作覆盖的区,也可为0,则
表示没有设置刷新区域
lprcUpdate RECT,该矩形为客户坐标系统中不被滚动操作覆盖的区,也可为0(要求修
改vb声明使之能接收lprcUpdate为长整型参数)
注解
若hrgnUpdate和lprcUpdate都为NULL,windows将不能为该DC计算刷新区
_______________________________________________________________
SelectClipRgn
VB声明
Declare Function SelectClipRgn Lib "gdi32" Alias "SelectClipRgn" (ByVal hdc 
As Long, ByVal hRgn As Long) As Long
说明
为指定设备场景选择新的剪裁区
返回值
Long,下列常数之一,以描述当前剪裁区:
COMPLEXREGION:该区域有互相交叠的边界
SIMPLEREGION:该区域边界没有互相交叠
NULLREGION:区域为空
ERRORAPI:发生了错误(保留原有剪裁区)
参数表
参数 类型及说明
hdc Long,将设置新剪裁区的设备场景
hRgn Long,将为设备场景设置剪裁区的句柄,该区域使用设备坐标
注解
该函数拷贝剪裁区;这样同一剪裁区可用于多个设备场景,删除它不会影响每个设备场
景的剪裁区。某些打印机文本和图形有不同的坐标系统,这时,应选用精度高的坐标系
统——例如,点阵打印机用抖动算法,其文本精度比图形精度高,则应选用文本坐标系

若使用WM_PAINT消息的子类,处理该消息使您用本函数增加的剪裁区不能超过窗口的不
活动区
_________________________________________
SetBoundsRect
VB声明
Declare Function SetBoundsRect Lib "gdi32" Alias "SetBoundsRect" (ByVal hdc 
As Long, lprcBounds As RECT, ByVal flags As Long) As Long
说明
设置指定设备场景的边界矩形。每个设备场景都有一个边界矩形,编程者可用来堆放表
示当前图象边界的信息。当允许边界矩形堆放时,每次windows向设备场景绘图,绘图位
置都与边界矩形比较,若有必要就要扩展边界矩形以包括绘图位置。这提供了一种方法
可确定设备场景的哪些部分已画了
返回值
Long,调用本函数前的边界设置:
DCB_SET:边界矩形不为空
DCB_RESET:边界矩形为空
DCB_ENABLE:边界矩形已被堆放
DCB_DISABLE:边界矩形没被堆放
参数表
参数 类型及说明
hdc Long,边界矩形对应的设备场景
lprcBounds RECT,用于设置边界矩形的矩形
flags Long,标志集合,可用下列常数组合而成
DCB_ACCUMULATE 新的边界矩形由当前边界矩形和lprcBounds联合而成
DCB_DISABLE 关闭边界堆放,该值为默认值
DCB_ENABLE 打开边界堆放
DCB_RESET 清除原有边界矩形,用DCB_ACCUMULATE设置新的边界矩形为lprcBounds
Top
___________________________________________________
SetGraphicsMode
VB声明
Declare Function SetGraphicsMode Lib "gdi32" Alias "SetGraphicsMode" (ByVal 
hdc As Long, ByVal iMode As Long) As Long
说明
允许或禁止增强图形模式,以提供某些支持(包括世界转换)
返回值
Long,执行成功为原来的图形模式,失败为0
参数表
参数 类型及说明
hdc Long,将为其设置模式的设备场景
iMode Long,下列值之一:
GM_COMPATIBLE:设置win16兼容模式
GM_ADVANCED:允许增强图形模式,包括世界转换
注解
只有Windows NT支持世界转换
若您已进入增强图形模式并已设置有世界转换,则您在将图形模式改回GM_COMPATIBLE之
前,必须用SetWorldTransform或ModifyWorldTransform函数将世界转换改回默认的特性
转换。关于特性转换更多的信息参考ModifyWorldTransform
________________________________________________________
SetMapMode
VB声明
Declare Function SetMapMode Lib "gdi32" Alias "SetMapMode" (ByVal hdc As Lon
g, ByVal nMapMode As Long) As Long
说明
设置指定设备场景的映射模式
返回值
Long,执行成功为设备场景原来的映射模式,失败为0
参数表
参数 类型及说明
hdc Long,设备场景句柄
nMapMode Long,下列常数之一:
MM_ANISOTROPIC 视口和窗口范围可完全任意
MM_HIENGLISH 逻辑单元为0.001 inch,起点在左下角
MM_HIMETRIC 逻辑单元为0.01 millimeter,起点在左下角
MM_ISOTROPIC 视口和窗口范围任意,只是x和y逻辑单元尺寸要相同
MM_LOENGLISH 逻辑单元为0.01 inch,起点在左下角
MM_HIMETRIC 逻辑单元为0.1 millimeter,起点在左下角
MM_TEXT 逻辑单元为一个像素
MM_TWIPS 逻辑单元为1 twip (1/1440 inch),起点在左下角





     又臭,又硬。
           小石头

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