2012-04-06 6 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

ルックスがすばらしく、ラクシリアンに感謝します。私が持っているもう一つの問題は、自動隠しモードのタスクバーが現在表示されているか隠れているかを検出することです。自動隠蔽状態は、自動隠蔽設定が有効かどうかを教えてくれるだけですが、それが私の瞬間に見えるかどうかについての情報は私には与えません – tomak

関連する問題