VB 版 (精华区)
发信人: bloom (小石头长大了), 信区: VB
标 题: 控件与消息函数(4)
发信站: 哈工大紫丁香 (2000年07月23日12:55:52 星期天), 转信
目录
IsChild 判断一个窗口是否为另一窗口的子或隶属窗口
IsIconic 判断窗口是否已最小化
IsRectEmpty 判断一个矩形是否为空
IsWindow 判断一个窗口句柄是否有效
IsWindowEnabled 判断窗口是否处于活动状态
IsWindowUnicode 判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消
息都接收Unicode文字
IsWindowVisible 判断窗口是否可见
IsZoomed 判断窗口是否最大化
LockWindowUpdate 锁定指定窗口,禁止它更新
MapWindowPoints 将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统
MoveWindow 改变指定窗口的位置和大小
OffsetRect 通过应用一个指定的偏移,从而让矩形移动起来
OpenIcon 恢复一个最小化的程序,并将其激活
PtInRect 判断指定的点是否位于矩形内部
RedrawWindow 重画全部或部分窗口
ReleaseCapture 为当前的应用程序释放鼠标捕获
__________________________________________________________
IsChild
VB声明
Declare Function IsChild Lib "user32" Alias "IsChild" (ByVal hWndParent As L
ong, ByVal hwnd As Long) As Long
说明
判断一个窗口是否为另一窗口的子或隶属窗口
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hWndParent Long,父窗口的句柄
hwnd Long,欲测试的窗口的句柄
__________________________________________
IsIconic
VB声明
Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long)
As Long
说明
判断窗口是否已最小化
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,待检测窗口的句柄
____________________________________________________
IsRectEmpty
VB声明
Declare Function IsRectEmpty Lib "user32" Alias "IsRectEmpty" (lpRect As REC
T) As Long
说明
判断一个矩形是否为空
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpRect RECT,要检查的矩形
Top
____________________________________________
IsWindow
VB声明
Declare Function IsWindow Lib "user32" Alias "IsWindow" (ByVal hwnd As Long)
As Long
说明
判断一个窗口句柄是否有效
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,待检查窗口的句柄
注解
如在一个程序变量里容纳了窗口句柄,为了解它是否仍然有效,就可考虑使用这个函数
______________________________________________________________________
IsWindowEnabled
VB声明
Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal
hwnd As Long) As Long
说明
判断窗口是否处于活动状态(在vb里使用:针对vb窗体和控件,请用enabled属性)
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,待检测窗口的句柄
__________________________________________________
IsWindowUnicode
VB声明
Declare Function IsWindowUnicode Lib "user32" Alias "IsWindowUnicode" (ByVal
hwnd As Long) As Long
说明
判断一个窗口是否为Unicode窗口。这意味着窗口为所有基于文本的消息都接收Unicode
文字
返回值
Long,如是个Unicode窗口则返回非零值,如是个ANSI窗口则返回零
参数表
参数 类型及说明
hwnd Long,窗口句柄
注解
在vb里无须担心这方面的问题,windows会自动转换引用了文本的消息,以满足窗口接收
消息的需要
___________________________________________
IsWindowVisible
VB声明
Declare Function IsWindowVisible Lib "user32" Alias "IsWindowVisible" (ByVal
hwnd As Long) As Long
说明
判断窗口是否可见
返回值
Long,如窗口可见则返回TRUE(非零)
参数表
参数 类型及说明
hwnd Long,要测试的那个窗口的句柄
注解
窗口可能处于可见状态,同时仍被位于它顶部的其他可见窗口(排在内部窗口列表的前
面)隐藏起来
____________________________________________________________
IsZoomed
VB声明
Declare Function IsZoomed Lib "user32" Alias "IsZoomed" (ByVal hwnd As Long)
As Long
说明
判断窗口是否最大化
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,欲测试的窗口的句柄
_____________________________________________________
LockWindowUpdate
VB声明
Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" (ByV
al hwndLock As Long) As Long
说明
锁定指定窗口,禁止它更新。同时只能有一个窗口处于锁定状态
返回值
Long,非零表示成功,零表示失败(比如另外已有一个窗口锁定)
参数表
参数 类型及说明
hwndLock Long,欲锁定窗口的句柄。如设为零,则对窗口解锁
注解
windows会跟踪锁定窗口的区域,并会在窗口解锁后重画它们。可用GetDCEx获得一个特
殊的设备场景,令其与锁定窗口协同工作,从而描绘一个加锁的窗口。这种技术的一个
应用场合是创建跟踪矩形(比如用于改变窗口大小的矩形
_________________________________________________________________________
MapWindowPoints
VB声明
Declare Function MapWindowPoints& Lib "user32" (ByVal hwndFrom As Long, ByVa
l hwndTo As Long, lppt As POINTAPI, ByVal cPoints As Long)
说明
将一个窗口客户区坐标的点转换到另一窗口的客户区坐标系统(在vb里使用:无论向函
数传递单独一个点,还是传递数组中的第一个POINTAPI结构,都要特别谨慎。数组中的
条目数量至少等于由cPoints参数指定的数量)
返回值
Long,低字代表映射过程中添加给每个点的水平偏移,高字则代表垂直偏移
参数表
参数 类型及说明
hwndFrom Long,定义源坐标的窗口。用零或桌面窗口句柄指定屏幕坐标
hwndTo Long,定义目标坐标的窗口。用零或桌面窗口句柄指定屏幕坐标
lppt POINTAPI,点结构中待转换的第一个条目。注意RECT结构在内存中组织成两个连续
的POINTAPI结构。这样就可为该函数创建一个别名,并使用RECT结构;而不是POINTAPI
结构。如这样做时,注意将cPoints的值加倍
cPoints Long,欲转换的点数
注解
在vb自带的api查看器中复制的声明为:Declare Function MapWindowPoints Lib "use
r32" Alias "MapWindowPoints" (ByVal hwndFrom As Long, ByVal hwndTo As Long,
lppt As Any, ByVal cPoints As Long) As Long,请注意:lppt As Any
__________________________________________________________
MoveWindow
VB声明
Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As L
ong, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight A
s Long, ByVal bRepaint As Long) As Long
说明
改变指定窗口的位置和大小。顶级窗口可能受最大或最小尺寸的限制,那些尺寸优先于
这里设置的参数
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hwnd Long,欲移动窗口的句柄
x Long,窗口新的左侧位置
y Long,窗口新的顶部位置
nWidth Long,窗口的新宽度
nHeight Long,窗口的高宽度
bRepaint Long,如窗口此时应重画,则设为TRUE(非零)。FALSE(零)则表明应用程
序会自己决定是否重画窗口
___________________________________________________
OffsetRect
VB声明
Declare Function OffsetRect Lib "user32" Alias "OffsetRect" (lpRect As RECT,
ByVal x As Long, ByVal y As Long) As Long
说明
该函数通过应用一个指定的偏移,从而让矩形移动起来。x会添加到右侧和左侧区域。y
添加到顶部和底部区域。偏移方向则取决于参数是正数还是负数,以及采用的是什么坐
标系统
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpRect RECT,欲移动的矩形
x Long,水平偏移量
y Long,垂直偏移量
_____________________________________________________________
OpenIcon
VB声明
Declare Function OpenIcon Lib "user32" Alias "OpenIcon" (ByVal hwnd As Long)
As Long
说明
恢复一个最小化的程序,并将其激活
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲恢复的窗口
注解
针对vb窗体,应使用vb的WindowState属性
__________________________________________________
PtInRect
VB声明
Declare Function PtInRect Lib "user32" Alias "PtInRect" (lpRect As RECT, pt
As POINTAPI) As Long
说明
这个函数判断指定的点是否位于矩形lpRect内部
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpRect RECT,欲检查的矩形
pt POINTAPI,欲判断的点
注解
如点位于矩形四边之内,或矩形的顶部或左侧边线上,则认为它在矩形内部。如位于矩
形的右侧或底部边线,则不认为它在矩形内部
______________________________________________________
RedrawWindow
VB声明
Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd
As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Lon
g) As Long
说明
根据fuRedraw旗标的设置,重画全部或部分窗口
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,要重画的窗口的句柄。零表示更新桌面窗口
lprcUpdate RECT,窗口中需要重画的一个矩形区域
hrgnUpdate Long,一个“区”的句柄,这个区描述了要重画的窗口区域。“区”:Reg
ion
fuRedraw Long,规定具体重画操作的旗标。下列常数可组合使用,从而进行复杂的重画
行动
RDW_ERASE 重画前,先清除重画区域的背景。也必须指定RDW_INVALIDATE
RDW_FRAME 如非客户区包含在重画区域中,则对非客户区进行更新。也必须指定RDW_IN
VALIDATE
RDW_INTERNALPAINT 即使窗口并非无效,也向其投递一条WM_PAINT消息
RDW_INVALIDATE 禁用(屏蔽)重画区域
RDW_NOERASE 禁止删除重画区域的背景
RDW_NOFRAME 禁止非客户区域重画(如果它是重画区域的一部分)。也必须指定RDW_VA
LIDATE
RDW_NOINTERNALPAINT 禁止内部生成或由这个函数生成的任何待决WM_PAINT消息。针对
无效区域,仍会生成WM_PAINT消息
RDW_VALIDATE 检验重画区域
RDW_ERASENOW 立即删除指定的重画区域
RDW_UPDATENOW 立即更新指定的重画区域
RDW_ALLCHILDREN 重画操作包括子窗口(前提是它们存在于重画区域)
RDW_NOCHILDREN 重画操作排除子窗口(前提是它们存在于重画区域)
注解
如针对桌面窗口应用这个函数,则应用程序必须用RDW_ERASE旗标重画桌面
_____________________________________________________________________
ReleaseCapture
VB声明
Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long
说明
为当前的应用程序释放鼠标捕获
返回值
Long,TRUE(非零)表示成功,零表示失败
注解
我的理解:与SetCapture函数一起使用,用于判断鼠标离开(mouseleave)事件
又臭,又硬。
小石头
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.233.140]
--
※ 修改:·bloom 於 07月23日13:02:51 修改本文·[FROM: 202.118.233.140]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.322毫秒