当前位置:文档之家› 获取当前鼠标所在的窗口句柄

获取当前鼠标所在的窗口句柄

用到的API函数:
GetCursorPos
基本信息
函数功能:该函数检取光标的位置,以屏幕坐标表示。

函数原型:BOOL GetCursorPos(LPPOINT lpPoint);
参数:
IpPoint:POINT结构指针,该结构接收光标的屏幕坐标。

使用时要先定义一个数据结构:
Public Type POINTAPI
x As Long
y As Long
End Type
例如:
dim biao as POINTAPI
GetCursorPos biao
那么biao.x用来存放当前光标的x轴坐标,biao.y用来存放当前y轴的坐标。

返回值:如果成功,返回值非零;如果失败,返回值为零。

若想获得更多错误信息,请调用GetLastError函数。

备注:
1.光标的位置通常以屏幕坐标的形式给出,它并不受包含该光标的窗口的映射模式的影响。

该调用过程必须具有对窗口站的WINSTA_READATTRIBUTES访问权限。

2.此函数为api函数,调用时要函数声明:Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。

WindowFromPoint
函数功能:该函数获得包含指定点的窗口的句柄。

函数原型:HWND WindowFromPoint(POINT Point);
参数:
Point:指定一个被检测的点的POINT结构。

返回值S:返回值为包含该点的窗口的句柄。

如果包含指定点的窗口不存在,返回值为NULL。

如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。

备注:WindowFromPoint函数不获取隐藏或禁止的窗口句柄,即使点在该窗口内。

应用程序应该使用ChildWindowFromPoint函数进行无限制查询,这样就可以获得静态文本控件的句柄。

速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。

获取当前鼠标所在的窗口句柄代码:
POINT pNow = {0,0};
If (GetCursorPos(&pNow))
{
HWND hwndPointNow = NULL;
hwndPointNow = WindowFromPoint(pNow);
if (hwndPointNow)
cout <<“Success!!”<< endl;
else
cout <<“Error!!”<< endl;
}
else
cout <<“Error!!”<< endl;。

相关主题