日期:2014-05-17  浏览次数:20804 次

有关句柄的问题
        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.