【发布时间】:2015-05-11 09:42:45
【问题描述】:
我更喜欢将任务栏设置为隐藏,但仍希望始终显示时钟。我在屏幕的右下角做了一个小时钟(80x41px)。我把它放在最上面[edit: with Timer]:
SetWindowPos(hwnd, HWND_TOPMOST, r.right - width, r.bottom - height, 0, 0, SWP_NOSIZE);
// r is my window's rect
当我点击任务栏时,我的时钟仍然在它上面。但是当我玩一些全屏游戏时,它会隐藏我的时钟。可能他们使用了一种特殊的方法。
我的问题是有什么方法可以在每个最顶层窗口的顶部显示我的窗口,甚至是活动的最顶层窗口? 我不需要我的应用获得键盘或鼠标输入,只是躺在那里显示时间。
我知道我的问题非常具体,因为我为自己编写了这个时钟。我搜索了谷歌但没有找到任何网页可以解决这个问题(this question 问同样的问题,但它想获得鼠标事件,答案说不,但我希望一个不需要输入的窗口可能是一个特殊的案例)。
任何帮助将不胜感激!
编辑
万一不可能,在屏幕上画一个矩形怎么样?由于我不需要输入,这可能是一个替代解决方案。这可能吗?
【问题讨论】:
-
我使用了一个名为 ClockX 的时钟。它做得很好,但 Windows(或者可能只是资源管理器)有一些错误,它的最高处理。通常,当该时钟消失时,只需右键单击其系统托盘图标即可。但有时资源管理器会将自己置于其他窗口下。然后,Windows 键 + D 隐藏所有窗口,同上将它们取回。无论如何,请注意您遇到了 Windows 中的许多错误。可能会使测试复杂化。
-
没有 API 可以做到这一点。考虑一下,如果有,其他应用程序会使用它,而您会遇到同样的问题。见blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx