我更喜欢将任务栏设置为隐藏,但仍然希望始终显示时钟。我在屏幕的右下角放了一个小时钟(80x41px)。我把它作为最顶层 [编辑:带定时器] :
SetWindowPos(hwnd, HWND_TOPMOST, r.right - width, r.bottom - height, 0, 0, SWP_NOSIZE);
// r is my window's rect
当我点击TaskBar时,我的时钟仍然在它上面。但是,当我玩一些全屏游戏时,它隐藏了我的时钟。可能是他们使用特殊方法 我的问题是,有没有办法在每个最顶层的窗口上显示我的窗口,甚至是活动的最顶层窗口? 我不需要我的应用程序获得键盘或鼠标输入,只需躺在那里显示时间。
我知道我的问题非常具体,因为我为自己写这个时钟。我搜索谷歌,但没有找到任何网页可以解决这个问题(this question问同样的问题,但它想要获得鼠标事件,答案说不,但我希望有一个窗口没有'需要输入可能是一个特例) 任何帮助将不胜感激!
修改
不可能,如何在屏幕上画一个矩形?由于我不需要输入,这可能是替代解决方案。这可能吗?
答案 0 :(得分:1)
它不是很优雅,但我之前通过在一秒计时器上不断设置窗口HWND_TOPMOST
来解决这个问题。
答案 1 :(得分:0)
是否属于自己的流程?
作为一般规则,如果该进程已经是前台进程,则进程只能设置前台窗口。 (Microsoft记录了SetForegroundWindow()MSDN条目中的限制。)