tom*_*mak 5 c++ windows qt taskbar
我正在使用Qt,我想做的是在Windows系统托盘中的图标上显示自定义弹出窗口。我可以通过使用screengeometry()和availableGeometry()之间的差异,使用geometry()和任务栏高度来获取图标坐标。因此,可以正确分配弹出窗口,并且对于不同的任务栏方向,该弹出窗口不会与任务栏重叠(例如,当任务栏位于屏幕左侧或屏幕顶部时)。
当打开任务栏的自动隐藏功能时问题开始,然后显然availableGeometry返回与screenGeometry相同的值,而我再也找不到任务栏的高度了。这将导致弹出窗口与任务栏重叠,甚至显示在错误的位置。
我的问题是:启用自动隐藏后,如何在Windows中正确检测任务栏的方向和大小?我应该使用某些winapi函数,还是可以仅在Qt中(最好)使用它?
1)使用以下命令检查自动隐藏状态:http://msdn.microsoft.com/en-us/library/bb787947 (v=vs.85).aspx 2)并使用以下命令查找宽度/高度/方向:http://msdn.microsoft.com/en-us/library/bb787947(v=vs.85).aspx /msdn.microsoft.com/en-us/library/bb787953(v=vs.85).aspx
希望这可以帮助。是的,这是 WinAPI 函数,因此您应该仅在“#ifdef Q_OS_WINDOWS”中使用此代码 - 如果也想在 Linux 上编译。