0

別のウィンドウの上にオーバーレイとして機能するウィンドウ、たとえば、ウィンドウのタイトルバーまたはステータスバーに表示できるアイコンを作成することは可能ですか?

この質問の目的のために、次のことを想定します。

  • ウィンドウは外部ウィンドウです(私のアプリケーションは所有していません)
  • オーバーレイは16x16ピクセルで、背景は透明です。
  • オーバーレイはウィンドウの右上に非常に近く表示され、ウィンドウの右上の境界線に対して相対的に配置されたままである必要があります。
  • オーバーレイは、マウスの左クリックを処理することに関心があり、他の入力は処理しません。
  • オーバーレイには入力フォーカスを設定しないでください。クリックされたときにのみ認識される必要があります。

可能であれば、どのようにそれを行うことができますか?ウィンドウを作成して正しい場所に表示しようとしましたが、表示されません。まるで存在しないかのようです。私はWindowハンドルを取得し、それをGdkWindowオブジェクトに変換することもできますが、それを見ることができません。

ETA:私がやりたいことの例は、最初は私がやろうとしていることなしで、そして再びそれを使って、オンラインで見つけることができます。この場合、右側のメニューバーを見てください。任意のアプリケーションに対してこれを実行し、ユーザーがその小さなアイコンをクリックしてウィンドウを「ドッキング」できるようにしたいと思います。

4

2 に答える 2

1

ウィンドウマネージャが機能する方法は、新しいウィンドウを取得し、ウィンドウの装飾をウィンドウの「親」として新しいウィンドウに追加することです。

XReparent()ウィンドウAPIを使用して、ウィンドウマネージャーの装飾ウィンドウと既存のウィンドウの間にウィンドウを挿入できる場合があります。

于 2009-10-02T16:30:17.647 に答える
0

GDKコマンドは多かれ少なかれXlibの同じ呼び出しにマップされるため、GDKコマンドのみを使用してこれを行うことができるはずです。おそらく、公開イベント(アプリではなく外部のイベントに送信されるイベント)を何らかの方法で処理する必要があることを考慮していませんか?ところで、XWindowハンドルをGtkWindowにどのように正確に変換しますか?

于 2009-11-16T19:28:00.130 に答える