繁体   English   中英

全屏的TOPMOST窗口

[英]TOPMOST window in full-screen

我正在玩Java中的JFrame。 我希望它成为最顶层的窗口,即始终位于顶层。 setAlwaysOnTop()可以正常工作,但是当我以全屏模式开始播放电影或游戏窗口时,它就不会停留在最前面。

我玩过JNI和手柄。 我的JNI C代码正在使用SetWindowPos(),在我启动全屏应用程序之前,这似乎工作正常。 这是一个示例:

JNIEXPORT void JNICALL Java_Frame1_setWindowAlwaysOnTop
(JNIEnv *env, jclass obj, jint hwnd, jboolean flag)
{
  if (flag)
    SetWindowPos((HWND) hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
  else
    SetWindowPos((HWND) hwnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
  return;
}

我已经搜索了一段时间,我所确定的是全屏以独占模式运行,并且“ 暂停窗口系统,以便可以直接在屏幕上绘制图形 ”。

谁能建议解决方法? 顺便说一句。 我的C成绩不是那么好,所以轻松点。

谢谢! 达摩

“最高”仅在窗口环境中才有意义。

全屏游戏和电影通常将模式切换为全屏独占模式。 这意味着单个应用程序几乎可以完全控制视频-它可以更改分辨率,成为唯一显示的应用程序等。

当另一个应用程序具有全屏独占模式时,即使在“最上面”的窗口化应用程序也不会显示,因为不再有窗口化概念可用。

“如何创建一个永远不会被其他任何窗口覆盖的窗口,甚至其他最顶部的窗口也不会覆盖?”

试想一下这是否可行,并想象是否有两个程序可以做到这一点。 程序A创建的窗口是“超级最高”的窗口,程序B也是如此。现在,用户拖动两个窗口以使其重叠。 怎么了? 您已经创建了自己自己的逻辑上的不可能。 这两个窗口之一必须在另一个窗口之上,这与假想的“超最高”功能相矛盾

来自: http : //blogs.msdn.com/oldnewthing/archive/2005/06/07/426294.aspx :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM