获取窗口Hwnd之后如何遍历其控件Hwnd 20

该如何做?... 该如何做? 展开
 我来答
forest93
2008-05-18 · TA获得超过337个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:0
展开全部
首先在一个模块里声明 API:
Public Declare Function GetWindow Lib "user32" (ByVal HWnd As Long, ByVal wCmd As eGWFlags) As Long
Public Enum eGWFlags
GW_CHILD = 5
GW_HWNDFIRST = 0
GW_HWNDLAST = 1
GW_HWNDNEXT = 2
GW_HWNDPREV = 3
GW_MAX = 5
GW_OWNER = 4
End Enum

使用方法:
Dim hLast As Long
Do
If hLast = 0 Then '如果第一次进入循环,那么 hLast 为零
hLast = GetWindow(#hParent#, GW_CHILD) '得到第一个子窗口
Else
hLast = GetWindow(hLast, GW_HWNDNEXT) '得到下一个子窗口
End If
If hLast = 0 Then Exit Do '如果窗口已经遍历完,那么 GetWindow 将返回 0
Debug.Print hLast '在这里放置代码,此时,hLast的值就是一个窗口句柄
Loop

注意:GetWindow 是按照窗口的Z-顺序(叠放次序)从上往下遍历的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式