FindWindowEx函数用于在指定窗口的子窗口中查找符合指定条件的窗口。它的声明如下:
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
其中,hWndParent参数指定了要搜索的父窗口的句柄,hWndChildAfter参数指定了要从哪个子窗口之后开始搜索,lpszClass参数指定了要查找的窗口类名,lpszWindow参数指定了要查找的窗口。
以下是一个使用FindWindowEx函数查找记事本窗口中的编辑框的示例:
Private Const GW_CHILD = 5
Private Sub Command1_Click()
Dim hWndParent As Long
Dim hWndChild As Long
' 查找记事本窗口的句柄
hWndParent = FindWindow("Notepad", vbNullString)
' 查找记事本窗口中的编辑框
hWndChild = FindWindowEx(hWndParent, 0, "Edit", vbNullString)
' 激活编辑框
SetForegroundWindow hWndChild
End Sub
在这个示例中,先通过FindWindow函数找到记事本窗口的句柄,然后再通过FindWindowEx函数找到记事本窗口中的编辑框的句柄,最后使用SetForegroundWindow函数将编辑框置为前台窗口。
注意,在使用FindWindowEx函数时,需要提供正确的窗口类名和窗口,以便准确地找到目标窗口。如果窗口类名或窗口为空,则表示忽略该条件,继续查找其他符合条件的窗口。