WindowFromPoint
不是我希望的,使用WindowFromPoint,有时候返回的是窗口内某个控件的句柄,这不是我希望的。备注:
WindowFromPoint
函数功能:该函数获得包含指定点的窗口的句柄。   函数原型:HWND WindowFromPoint(POINT Point);   参数:   Point:指定一个被检测的点的POINT结构。   返回值S:返回值为包含该点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控件之上,返回值是在该静态文本控件的下面的窗口的句柄。 

解决方案 »

  1.   

    说个比较笨的方法
    1.取得光标当前屏幕坐标pt
    2.枚举屏幕上所有窗口,当然属性visible为false
    3.判断pt是否在某窗口内,是则返回该窗口标题和句柄
      

  2.   

    判断pt是否在某个窗口的代码,怎么写?我着急用,资料还没查到。例如:窗口form1
    if (pt.x>=form1.left)and(pt.x<form1.left+form1.width)and
       (pt.y>=form1.top)and(pt.y<form1.top+form1.height) then
    begin
      form1.caption  //窗口标题取到
      form1.handle  //窗口句柄取到,当然这都是delphi的窗口,api忘了
    end;
      

  3.   

    判断pt是否在某个窗口的代码,怎么写?我着急用,资料还没查到。例如:窗口form1
    if (pt.x>=form1.left)and(pt.x<form1.left+form1.width)and
       (pt.y>=form1.top)and(pt.y<form1.top+form1.height) then
    begin
      form1.caption  //窗口标题取到
      form1.handle  //窗口句柄取到,当然这都是delphi的窗口,api忘了
    end;
      

  4.   


    var
      R: TRect;
    begin
      Windows.GetWindowRect(某窗口句柄, R);
      if PtInRect(R, Mouse.CursorPos) then
        Caption := 'In'
      else
        Caption := 'Out';
    end;
      

  5.   

    PtInRect()
    这个函数,没用过。不过,谢谢了。