繁体   English   中英

如何设置最顶层窗口的顶部?

[英]How to set window top of any topmost window?

我更喜欢将任务栏设置为隐藏,但仍然希望始终显示时钟。 我在屏幕的右下角放置了一个小时钟(80x41px)。 我使它成为最高[edit:with Timer]

SetWindowPos(hwnd, HWND_TOPMOST, r.right - width, r.bottom - height, 0, 0, SWP_NOSIZE);
// r is my window's rect

当我单击任务栏时,我的时钟仍在其顶部。 但是当我玩一些全屏游戏时,它会隐藏我的时钟。 可能是他们使用了特殊的方法。
我的问题是,有什么方法可以将我的窗口显示在每个最上面的窗口之上,甚至是活动的最上面的窗口吗? 我不需要我的应用获取键盘或鼠标输入 ,只需躺在那里显示时间即可。

我知道我的问题很具体,因为我为自己写了这个时钟。 我搜索了google,但找不到任何网页可以解决此问题这个问题问的相同,但是它想获取鼠标事件,并且答案是“否”,但是我希望不需要输入的窗口可能是一种特殊情况)。
任何帮助,将不胜感激!

编辑
如果不可能,如何在屏幕顶部绘制一个矩形? 由于我不需要输入,因此这可能是一个替代解决方案。 那可能吗?

它不是很优雅,但是我之前通过在一秒钟的计时器上不断将窗口设置为HWND_TOPMOST来解决了这一问题。

是在自己的过程中吗?

通常,如果某个进程已经是前台进程,则该进程只能期望设置该前台窗口。 (Microsoft在SetForegroundWindow()MSDN条目中记录了限制。)

暂无
暂无

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

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