在做项目的过程中遇到的一个很怪的现象,请大家来讨论----就这些分了,急用

terrace 2003-08-20 01:24:58
最近做一个项目,实现查询和打印功能,当用户需要打印时我会创建一另个进程来进行监控并弹出MessageBox,用户按下确定后该监控进程就结束掉,但有时用户在该弹出的MessageBox上按下确定键后我的程序会丢掉焦点,无法接受输入,于是我用一个定时器来定期检查,如下:
procedure Tfrm_Main.Timer3Timer(Sender: TObject);
var
H:HWnd;
begin
H:=FindWindow(nil,PChar('HF_Main'));
Application.BringToFront;
SetForegroundWindow(H);
ShowWindow(H,SW_SHOWNORMAL);
SetActiveWindow(H);
end;
但好象第一次能运行成功,以后程序图标只在任务栏闪烁,主窗口中有光标闪烁,
但不能接受输入,此时焦点还在别的程序上。该如何解决这个问题呢?
另一个问题是,如何获得当前屏幕上激活的有焦点的窗口?(我试过了GetActiveWindow(),GetTopWindow(),GetWindow(),好象都不行)
请高手指点,万分感谢!!!
...全文
20 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
夜o猫 2003-08-20
  • 打赏
  • 举报
回复
UP
sixgj 2003-08-20
  • 打赏
  • 举报
回复
呵呵。顶顶吧。累了……

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧