1个回答
展开全部
首先在一个模块里声明 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-顺序(叠放次序)从上往下遍历的
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-顺序(叠放次序)从上往下遍历的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询