VB 版 (精华区)
发信人: bloom (小石头长大了), 信区: VB
标 题: 控件与消息函数(2)
发信站: 哈工大紫丁香 (2000年07月23日12:30:33 星期天), 站内信件
目录
EnumChildWindows 为指定的父窗口枚举子窗口
EnumThreadWindows 枚举与指定任务相关的窗口
EnumWindows 枚举窗口列表中的所有父窗口
EqualRect 判断两个矩形结构是否相同
FindWindow 寻找窗口列表中第一个符合指定条件的顶级窗口
FindWindowEx 在窗口列表中寻找与指定条件相符的第一个子窗口
FlashWindow 闪烁显示指定窗口
GetActiveWindow 获得活动窗口的句柄
GetCapture 获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标
活动由它接收)
GetClassInfo 取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指
定类有关的信息
GetClassLong 取得窗口类的一个Long变量条目
GetClassName 为指定的窗口取得类名
GetClassWord 为窗口类取得一个整数变量
GetClientRect 返回指定窗口客户区矩形的大小
GetDesktopWindow 获得代表整个屏幕的一个窗口(桌面窗口)句柄
GetFocus 获得拥有输入焦点的窗口的句柄
_______________________________________________________________
EnumChildWindows
VB声明
Declare Function EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByV
al hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Lo
ng
说明
为指定的父窗口枚举子窗口
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
hWndParent Long,欲枚举子窗口的父窗口的句柄
lpEnumFunc Long,为每个子窗口调用的函数的指针。用AddressOf运算符获得函数在一
个标准模块中的地址
lParam Long,在枚举期间,传递给dwcbkd32.ocx定制控件之EnumWindows事件的值。这
个值的含义是由程序员规定的。(原文:Value that is passed to the EnumWindows
event of the dwcbkd32.ocx custom control during enumeration. The meaning of
this value is defined by the programmer.)
注解
在vb4下要求dwcbkd32.ocx定制控件。子窗口下属的子窗口也可由这个函数枚举
Top
_________________________________________________________________________
EnumThreadWindows
VB声明
Declare Function EnumThreadWindows Lib "user32" Alias "EnumThreadWindows" (B
yVal dwThreadId As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long
说明
枚举与指定任务相关的窗口
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
dwThreadId Long,某线程的标识符,它的窗口将被枚举
lpfn Long,指向一个函数的指针,要求为每个子窗口都调用这个函数。用AddressOf运
算符获得函数在标准模式下的地址
lParam Long,在枚举期间,传递给dwcbkd32d.ocx定制控件之EnumWindows事件的值。这
个值的含义是由程序员规定的
注解
子窗口下属的其他子窗口也可由这个函数枚举
__________________________________________________________________
EnumWindows
VB声明
Declare Function EnumWindows& Lib "user32" (ByVal lpEnumFunc As Long, ByVal
lParam As Long)
说明
枚举窗口列表中的所有父窗口(顶级和被所有窗口)
返回值
Long,非零表示成功,零表示失败
参数表
参数 类型及说明
lpEnumFunc Long,指向为每个子窗口都调用的一个函数的指针。用AddressOf运算符获
得函数在标准模式下的地址
lParam Long,在枚举期间,传递给dwcbkd32.ocx定制控件之EnumWindows事件的值。这
个值的含义是由程序员规定的
注解
我的理解——在随vb5同时提供的api32.txt文件中,找不到这个函数
_______________________________________________________________
EqualRect
VB声明
Declare Function EqualRect Lib "user32" Alias "EqualRect" (lpRect1 As RECT,
lpRect2 As RECT) As Long
说明
判断两个矩形结构是否相同
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpRect1 RECT,要比较的矩形
lpRect2 RECT,要比较的矩形
Top
_______________________________________________________________
FindWindow
VB声明
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassN
ame As String, ByVal lpWindowName As String) As Long
说明
寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一
个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部
分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序
的标题)
返回值
Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
参数表
参数 类型及说明
lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,
表示接收任何类
lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针
;或设为零,表示接收任何窗口标题
注解
很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传
递vbNullString常数
示例
Dim hw&, cnt&
Dim rttitle As String * 256
hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4
cnt = GetWindowText(hw&, rttitle, 255)
MsgBox Left$(rttitle, cnt), 0, "RTMain title"
________________________________________________________________________
FindWindowEx
VB声明
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd
1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String
) As Long
说明
在窗口列表中寻找与指定条件相符的第一个子窗口
返回值
Long,找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
参数表
参数 类型及说明
hWnd1 Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗
口都被认为是桌面的子窗口,所以也会对它们进行查找)
hWnd2 Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符
合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索
lpsz1 String,欲搜索的类名。零表示忽略
lpsz2 String,欲搜索的类名。零表示忽略
________________________________________________________________
FlashWindow
VB声明
Declare Function FlashWindow Lib "user32" Alias "FlashWindow" (ByVal hwnd As
Long, ByVal bInvert As Long) As Long
说明
闪烁显示指定窗口。这意味着窗口的标题和说明文字会发生变化,似乎从活动切换到非
活动状态、或反向切换。通常对不活动的窗口应用这个函数,引起用户的注意
返回值
Long,如窗口在调用前处于活动状态,则返回TRUE(非零)
参数表
参数 类型及说明
hwnd Long,要闪烁显示的窗口的句柄
bInvert Long,TRUE(非零)表示切换窗口标题;FALSE返回最初状态
注解
该函数通常与一个计数器组合使用,生成连续的闪烁效果。在windows nt及windows fo
r workgroup中,bInvert参数会被忽略。但在windows 95中不会忽略
_________________________________________________________________
GetActiveWindow
VB声明
Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As
Long
说明
获得活动窗口的句柄
返回值
Long,活动窗口的句柄,如没有窗口处于活动状态,则返回零值
Top
_________________________________________________
GetCapture
VB声明
Declare Function GetCapture Lib "user32" Alias "GetCapture" () As Long
说明
获得一个窗口的句柄,这个窗口位于当前输入线程,且拥有鼠标捕获(鼠标活动由它接
收)
返回值
Long,拥有捕获的窗口的句柄。倘若当前线程中没有窗口拥有捕获,则返回零值
Top
___________________________________________________________
GetClassInfo,GetClassInfoEx
VB声明
Declare Function GetClassInfo& Lib "user32" Alias "GetClassInfoA" (ByVal hIn
stance As Long, ByVal lpClassName As String, lpWndClass As WNDCLASS)
Declare Function GetClassInfoEx& Lib "user32" Alias "GetClassInfoExA" (ByVal
hInstance As Long, ByVal lpClassName As String, lpWndClassEx As WNDCLASSEX)
说明
取得WNDCLASS结构(或WNDCLASSEX结构)的一个副本,结构中包含了与指定类有关的信
息
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hInstance Long,指向拥有类的那个实例的一个句柄。如设为NULL,则获得与标准wind
ows类有关的信息
lpClassName String,欲查找的类名。也可能是个Long值,其中的低字是包含类名的一
个全局(共用)原子
lpWndClass WNDCLASS,(GetClassInfo)用于包含结果信息的结构
lpWndClassEx WNDCLASSEX,(GetClassInfoEx)用于包含结果信息的结构
注解
如为这个函数使用了WNDCLASSEX参数,请务必设置其中的cbSize字段
________________________________________________________________
GetClassLong
VB声明
Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd
As Long, ByVal nIndex As Long) As Long
说明
取得窗口类的一个Long变量条目
返回值
Long,由nIndex决定。零表示出错。会设置GetLastError
参数表
参数 类型及说明
hwnd 要为其获得类信息的窗口的句柄
nIndex 欲取得的信息,可能是下述任何一个常数:(正数表示一个字节偏移,用于取得
在额外字节中为这个类分配的类信息)
GCL_CBCLSEXTRA 这个类结构中分配的额外字节数
GCL_CBWNDEXTRA 窗口结构里为这个类中每个窗口分配的额外字节数
GCL_HBRBACKGROUND 描绘这个类每个窗口的背景时,使用的默认刷子的句柄
GCL_HCURSOR 指向这个类窗口默认光标的句柄
GCL_HICON 这个类中窗口默认图标的句柄
GCL_HICONSM 这个类的小图标
GCL_HMODULE 这个类的模块的句柄
GCL_MENUNAME 为类菜单取得名称或资源ID
GCL_STYLE 这个类的样式
GCL_WNDPROC 取得类窗口函数(该类窗口的默认窗口函数)的地址
________________________________________________________________
GetClassName
VB声明
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd
As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
说明
为指定的窗口取得类名
返回值
Long,以字节数表示的类名长度;排除最后的空中止字符。零表示出错。会设置GetLas
tError
参数表
参数 类型及说明
hwnd Long,欲获得类名的那个窗口的句柄
lpClassName String,随同类名载入的缓冲区。预先至少必须分配nMaxCount+1个字符
nMaxCount Long,由lpClassName提供的缓冲区长度
________________________________________________________________________
GetClassWord
VB声明
Declare Function GetClassWord Lib "user32" Alias "GetClassWord" (ByVal hwnd
As Long, ByVal nIndex As Long) As Long
说明
为窗口类取得一个整数变量
返回值
Long,由nIndex决定。零表示出错。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲获得类信息的那个窗口的句柄
nIndex Long,类信息的正偏移量;这些信息是该类的额外字节中分配的
注解
我的迷惑:在某参考书上是这样声明的:Declare Function GetClassWord% Lib "user
32" (ByVal hwnd As Long, ByVal nIndex As Long),即函数的返回值为Integer,而从
vb自带的api查看器中得到的声明表明返回值是个Long类型
___________________________________________________________
GetClientRect
VB声明
Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwn
d As Long, lpRect As RECT) As Long
说明
返回指定窗口客户区矩形的大小
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,欲计算大小的目标窗口
lpRect RECT,指定一个矩形,用客户区域的大小载入(以像素为单位)
注解
lpRect的左侧及顶部区域肯定会被这个函数设为零
Top
_________________________________________________________
GetDesktopWindow
VB声明
Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () A
s Long
说明
获得代表整个屏幕的一个窗口(桌面窗口)句柄
返回值
Long,桌面窗口的句柄
注解
所有桌面图标都在这个窗口里拒绝。它也用于各类屏幕保护程序
_____________________________________________________________
GetFocus
VB声明
Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long
说明
获得拥有输入焦点的窗口的句柄
返回值
Long,拥有焦点的那个窗口的句柄。如没有窗口拥有输入焦点,则返回零
又臭,又硬。
小石头
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.233.140]
--
※ 修改:·bloom 於 07月23日12:53:41 修改本文·[FROM: 202.118.233.140]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.294毫秒