有关句柄的问题
public IntPtr CurrentHandle;
public IntPtr MouseNowPosition(int x, int y)
{
IntPtr OriginalHandle;//声明保存原始句柄的变量
OriginalHandle = ((IntPtr)WindowFromPoint(x, y));//获取原始的句柄
CurrentHandle = OriginalHandle;//保存原始的句柄
while(OriginalHandle != ((IntPtr)0))//循环判断鼠标是否移动
{
CurrentHandle = OriginalHandle;//记录当前的句柄
OriginalHandle = GetParent(CurrentHandle);//更新原始句柄
}
return CurrentHandle; //返回当前的句柄
}
这当中的while 循环 大神讲解一下
------解决方案--------------------获取光标所在窗体的句柄,思路是,首先获得光标所在控件的句柄,
然后那个while循环从当前的控件开始,一层一层往上,找到窗体的句柄。
------解决方案--------------------就是为了找到最上一级的句柄。 因为最上一级的句柄,他的父级句柄就是等于 0.