如何使用FindWindowEx查找指定类名的窗口
时间: 2023-07-15 14:14:48 浏览: 145
可以使用FindWindowEx函数来查找指定类名的窗口,具体步骤如下:
1. 调用FindWindowEx函数,传入父窗口句柄和子窗口句柄(如果没有子窗口则可传入NULL)。
2. 在回调函数中,使用GetClassName函数获取当前窗口的类名,与指定的类名进行对比。
3. 如果类名匹配,则返回当前窗口句柄;否则继续查找下一个窗口。
以下是示例代码:
```
HWND FindWindowByClassName(HWND hWndParent, LPCWSTR lpClassName)
{
HWND hWnd = NULL;
while ((hWnd = FindWindowEx(hWndParent, hWnd, NULL, NULL)) != NULL)
{
WCHAR szClassName[256];
GetClassName(hWnd, szClassName, 256);
if (lstrcmpi(szClassName, lpClassName) == 0)
return hWnd;
}
return NULL;
}
```
调用方式:
```
HWND hWnd = FindWindowByClassName(NULL, L"Notepad");
if (hWnd != NULL)
{
// 找到窗口
}
else
{
// 没有找到窗口
}
```
以上代码可以查找所有子窗口和子窗口的子窗口,如果只需要查找直接子窗口,则需要在第三个参数中传入指定的类名。