INFO: WindowFromPoint() CaveatsID: Q65882
|
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.
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 : kbNTOS kbGrpUser kbWinOS kbWndw kbWndwProp
Version :
Platform :
Issue type : kbinfo
Last Reviewed: March 5, 1999