即使在全屏游戏中也始终处于领先地位

Posted

技术标签:

【中文标题】即使在全屏游戏中也始终处于领先地位【英文标题】:Always on top, even in fullscreen-games 【发布时间】:2014-02-25 21:48:16 【问题描述】:

如何将 Windows 窗体应用程序置于屏幕上的所有内容之上?

在运行全屏游戏时,仅设置 topmost-property 是不够的。

如果有人有旧表单的解决方案,我也会很高兴

我在这个论坛上看到很多帖子说这是不可能的,但我知道这不是因为我见过很多应用程序(fraps、teampeak overlay、xfire 等)可以做到这一点。

【问题讨论】:

想象一下,如果两个应用程序同时尝试这样做blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx Fraps 是通过 DirectX/OpenGL 实现的。如果您愿意使用低级别的图形 API,这是可能的,但不是真正的常规窗口形式(不包括 Form.TopMost)。 你在使用 MS-windows 吗? 喜剧选项:截取 Windows 窗体应用程序的屏幕截图,将其打印出来,然后将其粘贴到您的屏幕上。严肃的评论 - Nathan 是对的,但掩盖了这样一个事实,即在 C# 以外的非托管语言中,这可能更容易,因为在 C# 中你可以更好地控制绘画。我怀疑 teampeak 使用 Winforms 来做他们的事情——他们可能不得不推出很多自己的绘图逻辑。 @PeteBaughman 这绝对是真的,在其他语言中这可能更可行。我只是在 windows 窗体的上下文中发言,因为这是被问到的。 【参考方案1】:

如果您想使用图形库始终在屏幕上显示某些内容,您可能需要启动 here on SO。有可用的包装库,如用于 OpenGL 的 OpenTK。如果你想走 DirectX 路线,你需要加载 C++ 库并使用 P/Invoke 访问它们。从on msdn 开始有一个很好的教程。 DirectX 的包装器也以SharpDX 的形式存在。

【讨论】:

以上是关于即使在全屏游戏中也始终处于领先地位的主要内容,如果未能解决你的问题,请参考以下文章

Pygame 窗口在全屏模式下没有响应

创建一个即使在全屏模式下也保持在顶部的新窗口(Linux 上的 Qt)

MPMoviePlayerController 在全屏模式下向前搜索,直到结束卡住

在 GTK+ 中让窗口显示在全屏窗口上方

在全屏模式下显示状态栏 Ionic for android 和 iOS

C ++如何使用处理程序检测窗口状态是不是在全屏?