【发布时间】:2011-11-03 18:42:04
【问题描述】:
我们有一个应用程序会显示一个小的“始终在顶部”窗口。这通常工作正常。与其他应用程序一样,当它处于活动状态时,任务栏会将其显示为选中状态。
现在将幻灯片模式的 PowerPoint 添加到组合中。我们的窗口是可见的,而 PowerPoint 拥有整个屏幕。一切都好。直到,也就是说,您单击我们的窗口,Windows 7 会显示选择了我们的应用程序的任务栏。任务栏被带到了 PowerPoint 全屏显示的前面,这引起了用户的困惑。特别是他们会点击任务栏上的图标,这会导致我们的应用程序最小化。
如果我们使用ExStyle CreateParams 设置WS_EX_TOOLWINDOW 并确保WS_EX_APPWINDOW 没有设置,那么我们就不会出现在Taskbar 中,但是Taskbar 无论如何还是被带到了最前面。如果有什么不同,使用的语言是 Delphi,XE 版本。
接下来的问题是,当我们的 Always on Top 应用程序被聚焦时,我们如何阻止 Windows 在 PowerPoint 顶部显示任务栏。
【问题讨论】:
-
这对我来说似乎是完全正常的 Windows 行为。您能想出另一个按您希望的方式运行的程序吗?
-
@Rob 不,我找不到任何其他应用程序可以满足我的需求。我知道一些会从中受益的人。而这在 XP 中并没有发生。
-
这是弹窗还是重叠窗,我觉得应该是弹窗..
-
如果用户无法让任务栏显示,他们如何切换应用程序?
-
@David 无意阻止用户显示任务栏 - 所有常用方法仍然有效。我想停止的是当应用程序从 PowerPoint 获得焦点时自动显示任务栏。用户不希望它显示。想象一下顶部的应用程序正在控制 powerpoint 以跳转到另一张幻灯片。他们点击,应用程序完成了它的工作,但任务栏出现并搞砸了。
标签: delphi winapi powerpoint taskbar