FindWindowEx function

Expand
24 out of 35 rated this helpful - Rate this topic

FindWindowEx function

Applies to: desktop apps only

Retrieves a handle to a window whose class name and window name match the specified strings. The function searches child windows, beginning with the one following the specified child window. This function does not perform a case-sensitive search.

Syntax

HWND WINAPI FindWindowEx(
  __in_opt  HWND hwndParent,
  __in_opt  HWND hwndChildAfter,
  __in_opt  LPCTSTR lpszClass,
  __in_opt  LPCTSTR lpszWindow
);

Parameters

hwndParent [in, optional]

Type: HWND

A handle to the parent window whose child windows are to be searched.

If hwndParent is NULL, the function uses the desktop window as the parent window. The function searches among windows that are child windows of the desktop.

If hwndParent is HWND_MESSAGE, the function searches all message-only windows.

hwndChildAfter [in, optional]

Type: HWND

A handle to a child window. The search begins with the next child window in the Z order. The child window must be a direct child window of hwndParent, not just a descendant window.

If hwndChildAfter is NULL, the search begins with the first child window of hwndParent.

Note that if both hwndParent and hwndChildAfter are NULL, the function searches all top-level and message-only windows.

lpszClass [in, optional]

Type: LPCTSTR

The class name or a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be placed in the low-order word of lpszClass; the high-order word must be zero.

If lpszClass is a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names, or it can be MAKEINTATOM(0x8000). In this latter case, 0x8000 is the atom for a menu class. For more information, see the Remarks section of this topic.

lpszWindow [in, optional]

Type: LPCTSTR

The window name (the window's title). If this parameter is NULL, all window names match.

Return value

Type:

Type: HWND

If the function succeeds, the return value is a handle to the window that has the specified class and window names.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

If the lpszWindow parameter is not NULL, FindWindowEx calls the GetWindowText function to retrieve the window name for comparison. For a description of a potential problem that can arise, see the Remarks section of GetWindowText.

An application can call this function in the following way.

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

Note that 0x8000 is the atom for a menu class. When an application calls this function, the function checks whether a context menu is being displayed that the application created.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Winuser.h (include Windows.h)

Library

User32.lib

DLL

User32.dll

Unicode and ANSI names

FindWindowExW (Unicode) and FindWindowExA (ANSI)

See also

Reference
EnumWindows
FindWindow
GetClassName
GetWindowText
RegisterClass
RegisterClassEx
Conceptual
Windows

 

 

Send comments about this topic to Microsoft

Build date: 5/5/2012

Did you find this helpful?
(1500 characters remaining)
Community Additions ADD
If return value is NULL, GetLastError may return S_OK
The note on the return value states that "If the function fails, the return value is NULL. To get extended error information, call GetLastError."

Note that, if FindWindowEx returns null, GetLastError() may return S_OK (not ERROR_FILE_NOT_FOUND). In general, it is advised to not rely on the value of GetLastError(), but this could be a potential breaking change for your app if your code does rely on GetLastError() here.

Verified on:

· Windows 7
· Windows Server 2003 SP2
3/10/2011
C# Function Declaration
In C#:
[DllImport("user32.dll", SetLastError=true, CharSet=CharSet.Auto)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string lclassName, string windowTitle);
9/16/2010
VB Function Declaration
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr, _
ByVal childAfter As IntPtr, _
ByVal lclassName As String, _
ByVal windowTitle As String) As IntPtr
End Function
9/10/2009