FindWindowExA 函数 (winuser.h)

检索其类名称和窗口名称与指定字符串匹配的窗口的句柄。 该函数搜索子窗口,从指定子窗口后面的子窗口开始。 此函数不执行区分大小写的搜索。

语法

HWND FindWindowExA(
  [in, optional] HWND   hWndParent,
  [in, optional] HWND   hWndChildAfter,
  [in, optional] LPCSTR lpszClass,
  [in, optional] LPCSTR lpszWindow
);

参数

[in, optional] hWndParent

类型:HWND

要搜索其子窗口的父窗口的句柄。

如果 hwndParent为 NULL,则该函数使用桌面窗口作为父窗口。 该函数在桌面的子窗口之间搜索。

如果 hwndParentHWND_MESSAGE,则函数将搜索所有 仅消息窗口

[in, optional] hWndChildAfter

类型:HWND

子窗口的句柄。 搜索从 Z 顺序中的下一个子窗口开始。 子窗口必须是 hwndParent的直接子窗口,而不仅仅是子窗口。

如果 hwndChildAfterNULL,则搜索从 hwndParent的第一个子窗口开始。

请注意,如果 hwndParenthwndChildAfterNULL,则该函数将搜索所有顶级窗口和仅消息窗口。

[in, optional] lpszClass

类型:LPCSTR

上一次调用 RegisterClassRegisterClassEx 函数创建的类名或类原子。 原子必须置于 lpszClass的低序单词中;高序单词必须为零。

如果 lpszClass 是字符串,则指定窗口类名。 类名称可以是注册到 RegisterClassRegisterClassEx的任何名称,也可以是预定义的控件类名称,也可以 MAKEINTATOM(0x8000)。 在此后一种情况下,0x8000是菜单类的原子。 有关详细信息,请参阅本主题的“备注”部分。

[in, optional] lpszWindow

类型:LPCSTR

窗口名称(窗口的标题)。 如果此参数 NULL,则所有窗口名称都匹配。

返回值

类型:HWND

如果函数成功,则返回值是具有指定类和窗口名称的窗口的句柄。

如果函数失败,则返回值 NULL。 若要获取扩展的错误信息,请调用 GetLastError

言论

FindWindowEx 函数仅搜索直接子窗口。 它不会搜索其他后代。

如果 lpszWindow 参数未 NULLFindWindowEx 调用 GetWindowText 函数来检索窗口名称以进行比较。 有关可能出现的潜在问题的说明,请参阅 GetWindowText的“备注”部分。

应用程序可以通过以下方式调用此函数。

FindWindowEx( NULL, NULL, MAKEINTATOM(0x8000), NULL );

请注意,0x8000是菜单类的原子。 当应用程序调用此函数时,该函数将检查是否显示应用程序创建的上下文菜单。

注意

winuser.h 标头将 FindWindowEx 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-window-l1-1-1(在 Windows 8.1 中引入)

另请参阅

概念

EnumWindows

FindWindow

GetClassName

GetWindowText

参考

RegisterClass

RegisterClassEx

Windows