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函數時,需要提供正確的窗口類名和窗口標題,以便準確地找到目標窗口。如果窗口類名或窗口標題為空,則表示忽略該條件,繼續查找其他符合條件的窗口。