c++ - Windows:最大化周围/像任务栏一样对待我的窗口?

标签 c++ windows qt

我们正在开发一个“仪表板”应用程序,它基本上“总是在最前面”并且以一种令人讨厌的方式卡在屏幕的左侧。 (这是一个内部公司应用程序,而不是世界将受到然后断然拒绝的东西)

我的问题:是否有某种方法可以让其他应用程序窗口像对待任务栏一样对待我的应用程序窗口? IE 当有人最大化应用程序时它不会在我的应用程序后面最大化?

我们已经可以将其保持在顶部,但我认为如果我们在他们最大化时切断 1/8 的应用程序窗口,那将会非常烦人。

我们目前正在用 C++/Qt 编写此代码并面向 Win7/Win8。

谢谢!

最佳答案

更新: 执行此操作的最佳方法是使用 AppBar API,如@andrewMedico 的评论所述。这将确保系统知道应用栏,并确保您正确停靠在屏幕上并且不会与任务栏或其他应用栏重叠。

在 XP 中,您正在寻找的东西称为“Desk Band”。

不幸的是,这在 Windows 7 中已被弃用。我不知道它是否有效。

或者,在 Vista 和 WIndows 7 中,您可以使用小工具栏上的小工具。

其工作的基本方式是调用 SystemParametersInfo(SPI_SETWORKAREA)。这告诉系统“最大空间”在哪里。如果您没有使用推荐的 AppBar API,您将需要偶尔检查(或获取通知)任何其他程序何时更改工作区,以确保您得到适应。

关于c++ - Windows:最大化周围/像任务栏一样对待我的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26016897/

相关文章:

Windows 和 ctime/st_ctime

java - 在 Java 中读取 Excel 中的值,Windows 与 Linux 的问题

c++ - Qt C++ 迭代时修改列表中的对象

c++ - 运算符 '=' 不匹配(std::array<T, 3> 和 std::initializer_list<T>)

node.js - Windows 中 Node.JS 的 LDAP 授权

qt - 何时使用deleteLater

Qt VS 工具生成不正确的 MOC 命令

php - PHP 的explode() 函数在C++ 中是否有等价物?

c++ - 无法累积编译时间常量

c++ - OpenGL 中的缓冲区到底是什么,我如何使用多个缓冲区来发挥我的优势?