2

カスタム コマンドをウィンドウ システム メニュー (通常はタイトル バーの左上にあり、通常は最小化、最大化などを含む) に追加し、アプリケーションで応答したいと考えています。ms windows でできること

   HMENU hMenu = GetSystemMenu(hwnd, false);
   AppendMenu(hMenu, MF_STRING, ...)

X11でこのようなことは可能ですか? 一般的な方法ではない場合、特定のウィンドウマネージャーの解決策でしょうか?

4

2 に答える 2

1

わかりました、あなたの最後の編集の後、私が理解しているのは、カスタムメニューを、 Window Managerによって制御されるwindow decorationにあるメニューに追加したいということです。

確かではありませんが、それは可能だとは思いません。ICCCM と EWMH を読んで、これが可能かどうかを確認する必要があると思います。

または、wm-spec-list に電子メールを送信して、次のことを尋ねることもできます。

また、そこにオプションを追加すると、かなり隠されますね。ほとんどの人はそのメニューをクリックすることはないと思います...すべての可能なウィンドウマネージャーにメニューが存在するとは思いません。Window Manager の装飾ではなく、アプリケーションの Window 内にメニューを配置するようにしてください。一部の環境にはウィンドウ マネージャーさえありません。この場合、ユーザーは何をしますか?

一部のアプリケーション (Chromium ブラウザーなど) は、ウィンドウ マネージャーの装飾を使用しないことに注意してください。それらは独自の装飾を実装し、独自の閉じる/最大化/最小化ボタンを実装します。このようにして、すべての装飾ボタンとメニューを完全に制御できますが、それらの装飾は、デスクトップの残りの部分と同じ「ルック アンド フィール」を持っていません。あなたはこれを行うことを考えることができますが、私はそれをお勧めしません...おそらくメニューを別の場所に置くべきです(それほど隠されていない場所...)。

于 2012-05-14T12:05:59.057 に答える
0

アプリをシステム メニューに追加したいということですか。

最近のほとんどのデスクトップ環境は XDG メニュー標準を実装していると思います: http://standards.freedesktop.org/menu-spec/menu-spec-latest.html

おそらく他の標準も学ぶ必要があります: http://standards.freedesktop.org/

それらはすべてどういうわけか短いので、読んで学ぶのに数時間以上かかることはありません.

于 2012-04-30T12:18:15.113 に答える