5

Qtを使用しています。やりたいのは、Windowsのシステムトレイのアイコンの上にカスタムポップアップを表示することです。screenGeometry()とavailableGeometry()の違いを見つけることで、geometry()とタスクバーの高さを使用してアイコンの座標を取得できます。そのため、ポップアップを正しく配置でき、タスクバーの向きが異なる場合(タスクバーが画面の左側または上部にある場合など)にタスクバーと重ならないようにします。

タスクバーの自動非表示がオンになっているときに問題が発生し、明らかにavailableGeometryがscreenGeometryと同じ値を返し、タスクバーの高さが見つかりません。これにより、ポップアップがタスクバーと重なったり、間違った場所に表示されたりします。

私の質問は、自動非表示が有効になっているときに、Windowsでタスクバーの向きとサイズを正しく検出するにはどうすればよいですか?いくつかのwinapi関数を使用する必要がありますか、それとも純粋にQtで使用できますか(推奨)?

4

1 に答える 1

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関数なので、Linuxでもコンパイルする場合は、このコードを「#ifdefQ_OS_WINDOWS」でのみ使用する必要があります。

于 2012-04-06T10:40:39.227 に答える