如何知道VFP是处于前台还是后台?

httplee 2011-02-14 08:29:47
我们都知道vfp的可视类基本都有gotfocus事件,该事件可以由控件获得焦点时获得,但是,经过检验,当从VFP程序切换到其他应用程序时(即:前后台切换时)vfp的任何窗口、控件,甚至是_vfp本身都不发生lostfocus事件。
现在的问题就是,如何知道VFP已经被切换到了后台?同理,如何知道VFP被切换到了前台?
...全文
94 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2011-02-16
  • 打赏
  • 举报
回复
好像没有直接的事件方法
十豆三 2011-02-15
  • 打赏
  • 举报
回复
如:
在你的表单上加一个 Timer 控件,
此控件的 Interval 属性为100,Enabled 属性为 .T.

此控件的 Init 事件代码为:
Declare Integer GetForegroundWindow In user32

此控件的 Timer 事件代码为:
If GetForegroundWindow()=Thisform.HWnd
Thisform.Caption="前台"
Else
Thisform.Caption="后台"
Endif
然后你运行程序试一下吧
十豆三 2011-02-15
  • 打赏
  • 举报
回复
用API函数 GetForegroundWindow 检测当前活动窗口(前台)的HWND与你的VFP程序的HWND是否一致,来判断谁是当前窗口即可,知道了当前窗口,就知道了VFP程序是前台还是后台了。
httplee 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 httplee 的回复:]
我们都知道vfp的可视类基本都有gotfocus事件,该事件可以由控件获得焦点时获得,但是,经过检验,当从VFP程序切换到其他应用程序时(即:前后台切换时)vfp的任何窗口、控件,甚至是_vfp本身都不发生lostfocus事件。
现在的问题就是,如何知道VFP已经被切换到了后台?同理,如何知道VFP被切换到了前台?
[/Quote]

THANKS,不过还要再进一步请教一下:除了使用TIMER控件外,有没有做到像事件一样的触发响应的效果呢?

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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