2

システム メニューのない Motif メイン ウィンドウを作成し、ボックスを最小化および最大化するにはどうすればよいですか? ドキュメントやチュートリアルをグーグルで読んだり読んだりしても、その方法を見つけることができません。のいくつかの追加パラメーターで可能になるはずだと思いますXtVaCreateManagedWindowが、どれですか?

XtVaSetValues( topWidXmNmwmDecorations、 ...)のいくつかのバリエーションを試しましたが、どれも機能しませんでした。代わりに、これにはベンダー シェルを使用する必要があるというエラー メッセージが表示されます。ただし、ほとんどのウィジェット タイプはベンダー シェルから派生したものではありません。たとえば、ダイアログ シェルを使用してその中にスクロール可能なテキスト ウィジェットを配置しようとすると、テキスト ウィジェットがダイアログを制御しているように見えます。

4

3 に答える 3

2

どうやら(簡単に)ウィンドウ(システム)メニューを取り除くことはできませんが、次のようなコードでウィンドウメニュー項目を無効にすることは可能のようです:

int i;
XtVaGetValues (widget, XmNmwmFunctions, &i);
i &= ~(MWM_FUNC_ALL | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE | MWM_FUNC_CLOSE);
XtVaSetValues (widget, XmNmwmFunctions, i);

これにより、関連するウィンドウの装飾も削除され、ベンダー以外のシェルウィジェットでも機能するようです。

于 2009-09-08T12:38:09.770 に答える