java切换windows窗口,使窗口保持在所有其他Windows C / Java之上

小编典典

简短的回答:不是,不是。

更长的答案:“全屏”应用程序使用显示的方式与普通Windows

GUI应用程序不同。它们的确切工作方式取决于应用程序和操作系统。大多数将利用DirectX或OpenGL

API,这些API允许应用程序直接操纵代表屏幕的内存,以及访问GPU的加速功能。通过基本创建覆盖整个主要显示并且始终在顶部的GUI“窗口”(更像是面板)来支持这些应用程序,以防止桌面元素永远被绘制在全屏之后而被绘制应用程式的视窗(以Z顺序排列)。然后,应用程序可以“轻松”访问代表该GUI窗口的显示矩形的内存,

在这种情况下,将在应用程序需要时(实际上总是“尽可能快”或“与下一个监视器扫描同步”)绘制显示,而不是在Windows

GUI认为合适的时候绘制显示。因此,Windows认为这是个好主意时涂上的所有东西都会闪烁。Windows在GUI的Z顺序中在应用程序的“窗口”上绘制“始终在顶部”窗口,然后通过直接在其矩形上绘制,应用程序在窗口上绘制。这将导致Windows无效并重新绘制窗口,并且循环继续进行。

解决方案不仅是创建“始终位于顶部”的窗口,还需要以编程方式从全屏应用程序的窗口“任务切换”到您的窗口。这可能要求您的应用具有大多数托管运行时无法或不会授予的特权。如果可能的话,那么全屏应用程序将最小化(对于您的用户而言,这可能是一个大问题,也可能不是一个大问题;无论您的应用程序试图告诉我什么,几乎都不值得将StarCraft

2会话最小化在线混战中)。

2020-11-26

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值