2012-04-06 40 views
3

我正在使用Qt,我想要做的是在Windows系統托盤中的圖標上顯示自定義彈出窗口。通過查找screenGeometry()和availableGeometry()之間的差異,我可以通過使用geometry()和任務欄高度來獲取圖標座標。所以彈出窗口可以被正確地分配,並且不會與任務欄重疊用於不同的任務欄方向(例如,當任務欄在屏幕的左側或頂部時)。如何使用自動隱藏功能檢測Windows中任務欄的高度和方向?

問題在任務欄自動隱藏打開時開始,然後顯然availableGeometry返回與screenGeometry相同的值,並且我找不到任務欄高度了。這會導致彈出框與任務欄重疊,甚至顯示在錯誤的位置。

我的問題是:如何在Windows中啓用自動隱藏時如何正確檢測任務欄的方向和大小?我應該使用一些winapi函數,還是我可以純粹在Qt中使用它(最好)?

回答

3

1)您檢查使用這種自動隱藏狀態:http://msdn.microsoft.com/en-us/library/bb787947(v=vs.85).aspx 2)並找到寬/高使用該/方向:http://msdn.microsoft.com/en-us/library/bb787953(v=vs.85).aspx

希望這有助於。是的,這是WinAPI函數,所以你應該只在「#ifdef Q_OS_WINDOWS」中使用這個代碼 - 如果你想在Linux上編譯的話。

+0

看起來不錯,謝謝你Raxillian。另一個問題是檢測自動隱藏模式下的任務欄當前是否可見或隱藏。自動隱藏狀態只是告訴我,自動隱藏設置是否啓用,但不會告訴我它是否在給定時刻可見 – tomak 2012-04-06 12:58:31

相關問題