c++ - Motif主窗口没有系统菜单,如何最小化和最大化框? (C++)

标签 c++ motif

如何创建没有系统菜单、最小化和最大化框的 Motif 主窗口?我只是无法通过谷歌搜索和阅读文档和教程来找到方法。我相信使用 XtVaCreateManagedWindow 的一些附加参数应该是可能的,但是哪个?

我尝试了 XtVaSetValues 的几种变体(topWidXmNmwmDecorations,...),但没有任何效果。相反,我收到一条错误消息,提示我需要使用供应商 shell 来执行此操作。然而,大多数小部件类型并不是从供应商 shell 派生的,当我例如尝试使用对话框外壳并在其中放置一个可滚动的文本小部件,然后文本小部件似乎可以控制对话框。

最佳答案

显然不可能(轻易)摆脱窗口(系统)菜单,但似乎可以使用如下代码禁用窗口菜单项:

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

它也删除了相关的窗口装饰,显然甚至适用于非供应商外壳小部件。

关于c++ - Motif主窗口没有系统菜单,如何最小化和最大化框? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1389167/

相关文章:

c++ - 将新字符串添加到 MFC 组合框时触发断言

android - Android JNI 中的 Cpp 标志 - 根据标志更改变量

c++ - 如何将我的应用程序窗口之一保持在同一应用程序的其他窗口之上?

raspberry-pi - 无法为 Motif 应用程序获取键盘输入或遍历

调用 XClearArea 后无法修改 Xlib 中的 GC

c++ - 在模板类中的自动类型推断变量上调用模板函数

c++ - gcc 中的模糊重载,适用于 msvc

C++ int 到字节数组

c - 使用 XtPointer 传递 int 是否安全?

linux - 如何使用 Netbeans 编译在 Ubuntu 64 位上实现 Xm 的代码?