WindowFromPoint()与ChildWindowFromPoint()的区别
2015-04-07 09:54
751 查看
1. WindowFromPoint()
函数原型:HWND WindowFromPoint(POINT Point);
函数功能:该函数获得包含指定点的窗口的句柄,Point参数指屏幕坐标
参数:
Point:指定一个被检测的点的POINT结构。
返回值:
返回值为包含该点的窗口的句柄。如果不存在窗口包含这个点,则返回NULL。如果窗口无效或者隐藏,则返回NULL。
通过测试,发现获取部分控件句柄时,返回的都是父窗口的句柄。包括Static Text, GroupBox等等。
例如:
2. ChildWindowFromPoint()
原型:
HWND ChildWindowFromPoint(
HWND hWndParent, //handle to parent window
POINT Point //the coordinates(relative to hWndParent) of the point to be checked
);
功能:返回包含这个点的窗口句柄,即使窗口隐藏或者处于无效状态。(需要指定某个容器窗体,返回该容器窗体中包含点的窗口句柄)
返回值:如果点不在父窗口内,则返回NULL,如果点在父窗口内,但不在任何子窗口上,则返回父窗口的句柄。
另外,特别要注意的是:参数Point不是屏幕坐标,而是相对于容器窗口的坐标。
例如:
函数原型:HWND WindowFromPoint(POINT Point);
函数功能:该函数获得包含指定点的窗口的句柄,Point参数指屏幕坐标
参数:
Point:指定一个被检测的点的POINT结构。
返回值:
返回值为包含该点的窗口的句柄。如果不存在窗口包含这个点,则返回NULL。如果窗口无效或者隐藏,则返回NULL。
通过测试,发现获取部分控件句柄时,返回的都是父窗口的句柄。包括Static Text, GroupBox等等。
例如:
void CTestDlg::OnTest() { POINT pt; GetCursorPos(&pt);//获取坐标 HWND hHandle = ::WindowFromPoint(pt); if (hHandle == m_hWnd) { MessageBox("OK"); } }
2. ChildWindowFromPoint()
原型:
HWND ChildWindowFromPoint(
HWND hWndParent, //handle to parent window
POINT Point //the coordinates(relative to hWndParent) of the point to be checked
);
功能:返回包含这个点的窗口句柄,即使窗口隐藏或者处于无效状态。(需要指定某个容器窗体,返回该容器窗体中包含点的窗口句柄)
返回值:如果点不在父窗口内,则返回NULL,如果点在父窗口内,但不在任何子窗口上,则返回父窗口的句柄。
另外,特别要注意的是:参数Point不是屏幕坐标,而是相对于容器窗口的坐标。
例如:
当鼠标放在m_button上时,返回OK。 void CTestDlg::OnOK() { POINT pt; GetCursorPos(&pt); BOOL bOK = ::ScreenToClient(m_hWnd, &pt); if (!bOK) { return; } HWND hHandle = ::ChildWindowFromPoint(m_hWnd, pt); if (hHandle == m_button.m_hWnd) { MessageBox("OK"); } }
相关文章推荐
- QQ截图时窗口自动识别的原理(WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx,RealChildWindowFromPoint)
- QQ截图时窗口自动识别的原理(WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx,RealChildWindowFromPoin
- Refresh parent window from child window without having to press the refresh button
- GetCursorPos/WindowFromPoint/SendMessage (用API函数向Edit框发送字符)(转)
- onAttachedToWindow () 和 onDetachedFromWindow () ; 以及更新视图的函数ondraw() 和dispatchdraw()的区别
- Pass value from child popup window to parent page window using JavaScript--reference
- onAttachedToWindow () 和 onDetachedFromWindow () ; 以及更新视图的函数ondraw() 和dispatchdraw()的区别
- GetCursorPos/WindowFromPoint/SendMessage (用API函数向Edit框发送字符)
- onAttachedToWindow () 和 onDetachedFromWindow () ; 以及更新视图的函数ondraw() 和dispatchdraw()的区别
- Get the window data(lamda,flux, true) from a center point and the window width
- 获得窗体指针的办法FromHandle,WindowFromPoint
- WindowFromPoint和ChildWindowFromPoint函数的使用
- WindowFromPoint和GetCursorPos
- How to pass value from Child window to Parent Window
- WindowFromPoint函数功能
- GetCursorPos WindowFromPoint GetlassName
- 子页面关闭时传值给父页面(pass value from child window to parent window, when the child window is closing)
- WindowFromPoint
- MyWindowFromPoint,跳过GROUPBOX
- WindowFromPoint