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

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

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

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

[in, optional] hWndChildAfter

类型:HWND

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

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

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

[in, optional] lpszClass

类型: LPCSTR

由先前调用 RegisterClass 或 RegisterClassEx 函数创建的类名或类原子。 原子必须放在 lpszClass 的低序字中;高序字必须为零。

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

[in, optional] lpszWindow

类型: LPCSTR

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

返回值

类型:HWND

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

如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。

注解

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

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

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

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

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

注意

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

要求

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

请参阅

概念性

EnumWindows

FindWindow

GetClassName

GetWindowText

引用

RegisterClass

RegisterClassEx

Windows