在A程序中如何判断B程序的窗体是否当前获得焦点的窗体呢?
在A程序中可以用EnumWindows函数获得当前打开的所有窗体,但是如何判断这些窗体是否正在获得焦点呢? 问题点数:50、回复次数:3Top
1 楼GWFXP(影)回复于 2003-09-07 19:07:41 得分 50
如果想要被动的获得这些窗体的激活消息,我想一般是不可能的,除非自己截获。
不过如果要求不是很高的话,可以使用下面的方法试一试:
procedure TForm1.Timer1Timer(Sender: TObject);
var wnd: THandle;
buf: PChar;
begin
wnd:= GetForegroundWindow();
if wnd=NULL then begin
memo1.Lines.Add('Return Handle NULL!'); exit;
end;
if memo1.Lines.Count>500 then memo1.Clear;
getmem(buf, 256);
GetWindowText(wnd, buf, 255);
memo1.Lines.Add(String(buf));
end;Top
2 楼hhddff(taizi)回复于 2003-09-08 16:04:28 得分 0
不可能同时获得焦点吧,焦点只能在一个上,你可以引用其它form b,然后在a 中判断
b表单是否获得焦点,是可以的,我这样做过一个程序,不过我认为实际不太好。Top
3 楼guothreelove2003()回复于 2003-09-09 17:55:47 得分 0
关注!Top




