Microsoft KB Archive/65882

{|
 * width="100%"|

INFO: WindowFromPoint Caveats

 * }

Q65882

-

The information in this article applies to:


 * Microsoft Win32 Software Development Kit (SDK)
 * Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1

-

SUMMARY
When the coordinates passed to the WindowFromPoint function correspond to a disabled, hidden, or transparent child window, the handle of that window's parent is returned.

To retrieve the handle of a disabled, hidden, or transparent child window, given a point, the ChildWindowFromPoint function must be used.

MORE INFORMATION
The following code fragment demonstrates the use of the ChildWindowFromPoint function during the processing of a WM_MOUSEMOVE message. This code finds the topmost child window at a given point, regardless of the current state of the window.

In this fragment, hWnd is the window receiving this message and is assumed to have captured the mouse via the SetCapture function.

  HWND  hWndChild, hWndPoint; POINT pt; .   .    .    case WM_MOUSEMOVE: pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); /*        * Convert point to screen coordinates. When the mouse is        * captured, mouse coordinates are given in the client * coordinates of the window with the capture. */        ClientToScreen(hWnd, &pt); /*        * Get the handle of the window at this point. If the window * is a control that is disabled, hidden, or transparent, then * the parent's handle is returned. */        hWndPoint = WindowFromPoint(pt);

if (hWndPoint == NULL) break; /*        * To look at the child windows of hWnd, screen coordinates * need to be converted to client coordinates. */        ScreenToClient (hWndPoint, &pt);

/*        * Search through all child windows at this point. This * will continue until no child windows remain. */        while (TRUE) {           hWndChild = ChildWindowFromPoint(hWndPoint, pt);

if (hWndChild && hWndChild != hWndPoint) hWndPoint = hWndChild; else break; }

// Do whatever processing is desired on hWndPoint

break; Additional query words: WIN16SDK

Keywords : kbOSWinNT kbOSWin2000 kbSDKWin32 kbGrpDSUser kbOSWin kbWndw kbWndwProp

Issue type : kbinfo

Technology : kbWin32SDKSearch kbAudDeveloper kbWin3xSearch kbSDKSearch kbWin32sSearch kbWinSDKSearch kbWinSDK300 kbWinSDK310