The EnumChildWindows function enumerates the child windows that belong to the specified parent window by passing the handle of each child window, in turn, to an application-defined callback function. EnumChildWindows continues until the last child window is enumerated or the callback function returns FALSE.
BOOL EnumChildWindows(
HWND hWndParent, |
// handle to parent window |
WNDENUMPROC lpEnumFunc, |
// pointer to callback function |
LPARAM lParam |
// application-defined value |
); |
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
The EnumChildWindows function does not enumerate top-level windows owned by the specified window, nor does it enumerate any other owned windows.
If a child window has created child windows of its own, this function enumerates those windows as well.
A child window that is moved or repositioned in the Z order during the enumeration process will be properly enumerated. The function does not enumerate a child window that is destroyed before being enumerated or that is created during the enumeration process.
This function is more reliable than calling the GetWindow function in a loop. An application that calls GetWindow to perform this task risks being caught in an infinite loop or referencing a handle to a window that has been destroyed.