有没有办法将应用程序覆盖在完全筛选的程序上?

时间:2012-04-26 18:29:58

标签: user-interface architecture

我希望开发一个应用程序,它本质上是一个计时器窗口,它始终显示在任何其他应用程序前面的屏幕上,并且在聚焦其他窗口时永远不会落到后台。一个例子是,当我玩全屏游戏时,我希望这个计时器覆盖游戏,当我点击窗口上的计时器按钮时,它不会关闭游戏。

我是如何在C#/ java / C ++中实现这一目标的?

由于

2 个答案:

答案 0 :(得分:1)

C#:尝试设置窗口(窗体)的AlwaysOnTop属性
java:在框架或对话框上调用setAlwaysOnTop(true)

答案 1 :(得分:0)

我认为你想要实现的目标可以通过C#中表单的属性TopMost和Java窗口上的setAlwaysOnTop来实现......

在Windows上的C ++中,你必须调用 SetWindowPos 函数并传递参数: HWND_TOPMOST attribue。

更新

由于您的应用程序处于全屏模式,请尝试使用Win32 API函数在前台设置应用程序:SetForegroundWindow

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

SetForegroundWindow(this.Handle);

否则,您可以尝试避免使用Win32 SetForegroundWindow函数,如下所示:

this.TopMost = true;
this.Activate();