WindowFromPoint() CaveatsLast reviewed: November 2, 1995Article ID: Q65882 |
The information in this article applies to:
SUMMARYWhen 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 INFORMATIONThe 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 reference words: 3.00 3.10 3.50 3.51 4.00 95
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |