首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >浸没式全屏模式顶部的透明窗口

浸没式全屏模式顶部的透明窗口
EN

Stack Overflow用户
提问于 2014-09-01 08:04:30
回答 1查看 3.4K关注 0票数 2

我试图画在另一个进程之上,而它是在沉浸全屏模式。我知道使用GDI是可能的,我有两个问题:

  1. 是否可以使用顶层透明窗口?(在沉浸式过程的顶部)
  2. 我是否可以使用更高级别的API来代替GDI?

谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-01 08:46:54

在Windows中,有两种创建全屏窗口的可能性:

  1. 具有显示独家绘图权限的全屏应用程序.
  2. 扩展到整个桌面分辨率的无边界窗口。

第一个选项允许您更改分辨率、位深度和刷新速率等显示属性,而第二个选项在这里被绑定使用与普通(窗口)桌面应用程序相同的选项。

只有在使用选项2实现全屏应用程序时,才有可能用顶层窗口覆盖全屏窗口。然而,在这种情况下,任何能够创建透明顶层窗口的代码都可以(无论是纯WinAPI/GDI,还是更复杂的代码,如Qt)。

使用选项1,如描述所示,全屏应用程序对显示具有独占的绘图权限。尝试在其前面引入另一个窗口,将要么将全屏应用程序最小化,要么将其强制进入窗口模式。

在这种情况下,有些黑客仍然可以获得覆盖,但它们是相当具有侵入性的。例如,使用基于D3D的全屏应用程序,您可以连接到D3D的现在时例程,并在显示回缓冲区之前让D3D绘制覆盖。这里最重要的一点是,绘制覆盖层的代码是从全屏幕应用程序的进程中执行的,因为这是唯一允许在这一点上绘制到屏幕上的进程。

请注意,一些应用程序(特别是受反欺骗软件保护的电子游戏)不太喜欢它,如果您以这种方式将代码注入到这个过程中。

请注意,Win API还为所谓的硬件覆盖提供了一个接口,它允许在独占的全屏应用程序之上绘图。不幸的是,这种机制在消费硬件上不被广泛支持,并且可能无法工作,这取决于您试图在哪个显卡上运行它。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25601362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档