如何遍历SCREEN中某个窗口上的所有控件?已经知道该窗口的句柄和该窗口中一个BUTTON的句柄。(88分)

  • 主题发起人 主题发起人 小ゆ鱼ゆ儿
  • 开始时间 开始时间

小ゆ鱼ゆ儿

Unregistered / Unconfirmed
GUEST, unregistred user!
利用findwindow()函数,传入不同的参数,达到目的
 
我试验过了,不能遍历所有的控件,只能遍历其中的几个。<br><br>还有什么办法,能给个例子吗?
 
FindWindow <br><br>VB声明 <br>Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long <br>说明 <br>寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) <br>返回值 <br>Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError <br>参数表 <br>参数 类型及说明 <br>lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类 <br>lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 <br>注解 <br>很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传递vbNullString常数<br>&nbsp;<br>示例 <br>Dim hw&amp;, cnt&amp;<br>Dim rttitle As String * 256<br>hw&amp; = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4<br>cnt = GetWindowText(hw&amp;, rttitle, 255)<br>MsgBox Left$(rttitle, cnt), 0, "RTMain title" <br>
 
非 TWinControl 的派生类不能用 FindWindow 吧?<br>
 
多人接受答案了。
 
后退
顶部