Motif:拦截关闭框事件并阻止应用程序退出? (C++)
当用户单击主题窗口(小部件)的关闭框时,如何拦截,以及如何防止 Motif 窗口管理器在单击关闭框时关闭整个调用应用程序(以便我的应用程序可以关闭 Motif 应用程序上下文)和窗口并继续运行)?我试图通过谷歌、图茨和文档来找到自己,但没有任何结果。需要 C++。
How do I intercept when the user clicks on a motif window's (widget's) close box, and how do I prevent the Motif window manager to close the entire calling application on the close box being clicked (so that my app can close the Motif application context and windows and continue to run)? I've tried to find out myself with Google, tuts and docs, but no dice. C++ required.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这似乎有效(在 inet 上找到):
设置这样的回调将防止应用程序因关闭事件被默认事件处理程序处理而被关闭。
This seems to work (found on the inet):
Setting such a callback will prevent the application being closed as a result of the close event being handle be the default event handlers.
vendorShellWidgetClass 不会为你解决这个问题吗?就像这样,仅关闭主题应用程序上下文而不是窗口。
Won't vendorShellWidgetClass do the trick for you? As in, closing just the motif app context and not the window..
IIRC,在 X11 上,当您单击窗口的关闭框时,窗口管理器会向您的应用程序发送一个信号,告诉它退出。无论您使用主题、gtk 还是 Qt 都无关紧要,因为关闭框属于 WM,而不是您的应用程序。
您需要捕获 unix 信号以防止应用程序关闭。
IIRC, on X11, when you click a window's close box, the window manager sends a signal to your application, which tells it to exit. Whether you use motif or gtk or Qt is irrelevant since the close box belongs to the WM, not your application.
You need to catch the unix signal to prevent your application from closing.