您可以使用以下步驟來使用FindWindowEx遍歷某個窗口里的所有子窗口:
例如:HWND hWndParent = FindWindow(NULL, _T(“父窗口標題”));
例如:HWND hWndChild = FindWindowEx(hWndParent, NULL, _T(“子窗口類名”), NULL);
例如:TCHAR szWindowTitle[256];
GetWindowText(hWndChild, szWindowTitle, sizeof(szWindowTitle));
例如:TCHAR szClassName[256];
GetClassName(hWndChild, szClassName, sizeof(szClassName));
處理子窗口,例如輸出子窗口的標題和類名,或者遞歸調用FindWindowEx函數遍歷子窗口的子窗口。
使用GetWindow函數獲取下一個兄弟窗口的句柄。GetWindow函數的參數為當前窗口的句柄和指定關系的窗口。
例如:hWndChild = GetWindow(hWndChild, GW_HWNDNEXT);
下面是一個示例代碼,演示了如何使用FindWindowEx遍歷某個窗口里的所有子窗口:
HWND hWndParent = FindWindow(NULL, _T("父窗口標題"));
if (hWndParent != NULL) {
HWND hWndChild = FindWindowEx(hWndParent, NULL, NULL, NULL);
while (hWndChild != NULL) {
TCHAR szWindowTitle[256];
GetWindowText(hWndChild, szWindowTitle, sizeof(szWindowTitle));
TCHAR szClassName[256];
GetClassName(hWndChild, szClassName, sizeof(szClassName));
// 處理子窗口
// 例如:輸出子窗口的標題和類名
_tprintf(_T("子窗口標題:%s,類名:%s\n"), szWindowTitle, szClassName);
// 獲取下一個兄弟窗口
hWndChild = GetWindow(hWndChild, GW_HWNDNEXT);
}
}
請注意,以上代碼僅為示例,實際應用時可以根據需要進行適當的修改。