【发布时间】:2009-11-05 22:03:47
【问题描述】:
有人知道一种有效检测当前在 Windows 系统上打开的任何窗口的移动的方法吗?我需要检测一个窗口的移动,确定它是否与我的应用程序窗体发生碰撞,并在必要时将其从下方撞出。
我知道我可以扫描一个枚举列表并检查每个窗口——但这是一种持续执行的密集方式。
背景:
我有一个停靠在用户屏幕一侧的任务栏式应用程序。当“始终在顶部”功能打开时,最大化的窗口将占用剩余的可用空间,而不会像预期的那样覆盖工具栏。
但是,如果您将一个未最大化的窗口拖到工具栏上,应用程序会移到工具栏后面(也是预期的),但您不能再抓住标题栏将其移回 - 除非您禁用“始终在顶部”,然后移动它。所以,我想把窗户从下面撞出去。
【问题讨论】:
-
注意:用户可以随时使用键盘将其移出:ALT+SPACE、M、右箭头(或任何箭头键),然后窗口跟随鼠标。
-
@jeffamaphone:虽然没有多少用户知道这一点
-
当然,用户可以......但他们也会非常直言不讳地表示不赞成这种方法:)