【问题标题】:XLib: 'Soft-Closing' a windowXLib:“软关闭”一个窗口
【发布时间】:2016-12-17 20:13:16
【问题描述】:

我知道,我可以通过调用“关闭”一个 X11 窗口:

XDestroyWindow(display, id);

问题是,这会立即破坏窗口。另一方面,如果我点击关闭按钮(标题栏中的 x),应用程序会显示类似“你真的要退出吗?”。

那么我怎样才能模拟这种类型的窗口关闭?


背景: 我正在关闭其他应用程序的窗口,而不是我自己的

【问题讨论】:

    标签: c window xlib


    【解决方案1】:

    我找到了解决办法:

    XEvent event;
    event.xclient.type = ClientMessage;
    event.xclient.window = id;
    event.xclient.message_type = XInternAtom(d, "WM_PROTOCOLS", TRUE);
    event.xclient.format = 32;
    event.xclient.data.l[0] = XInternAtom(d, "WM_DELETE_WINDOW", FALSE);
    event.xclient.data.l[1] = CurrentTime;
    XSendEvent(d, id, False, NoEventMask, &event);
    

    其中d 是显示句柄,id 是窗口 ID。

    信用:https://john.nachtimwald.com/2009/11/08/sending-wm_delete_window-client-messages/

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 这不是我直接需要的,但也许第一个答案很有帮助,无论如何谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2012-02-10
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多