首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于WindowFromPoint的有关问题

2012-12-29 
关于WindowFromPoint的问题都说WindowFromPoint不获取禁或隐藏窗体的句柄, MSDN上面也是这么说的我试了一

关于WindowFromPoint的问题
都说WindowFromPoint不获取禁或隐藏窗体的句柄, MSDN上面也是这么说的
我试了一下,delphi用TForm类创建的窗体,你把这个窗体设为Enable=False
你用该函数去获取同样可以取得句柄啊,这是咋回事呢?

代码:用一个定时器

procedure TForm1.Timer1Timer(Sender: TObject);
var
aPoint:TPoint;
aHandle:HWND;
ClassName:PChar;
begin
    GetMem(ClassName,255);
    GetCursorPos(aPoint);
    aHandle:=WindowFromPoint(aPoint);
    if aHandle<>null then
    begin
    GetWindowText(aHandle,ClassName,255);
    Memo1.Lines.Add(StrPas(ClassName));
    end;
    FreeMem(ClassName);
end;
 你再建个Form2,把Form2设为disabled,当鼠标移到Form2上,也可以获取到这个窗体的句柄啊,
 你在窗体上放个按钮,把它设为disabled,确实取不到

 各位高人,能不能给个解释,是不是delphi用TForm类创建的窗体特别啊,还是这个函数对toplevel窗体无效?或者说这个函数所说的disable是别的解释?


[解决办法]
这和Delphi无关,是Windows这样认为的.
你把计算器主窗口设置Enbaled=False,然后用WindowFromPoint同样可以得到句柄.

热点排行