微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 xlib

如何解决如何从 xlib

我正在尝试实现一项功能,当用户将鼠标悬停在子窗口上时,该功能会更改子窗口的颜色。为此,我需要接收特定子窗口的 EnterNotify 事件。我收到 EnterNotify 事件没有问题,但我不知道如何区分 EnterNotify 事件来自哪个子窗口。如何从事件中获取事件窗口?

if (event.type == EnterNotify && event.xcrossing.window == w11) {
            std::cout << "ENTER WINDOW" << std::endl;
        }

这是我尝试将 w11 作为子窗口的方法。当 EnterNotify 事件进入时,没有任何内容发送到输出,但是如果我将 event.xcrossing.window 等效性更改为 win(父窗口),如下所示,它将在 EnterNotify 事件发生时产生输出。谢谢。>

if (event.type == EnterNotify && event.xcrossing.window == win) {
            std::cout << "ENTER WINDOW" << std::endl;
        }

解决方法

事实证明,当您使用 XCreateSimpleWindow 创建子窗口时,父窗口的掩码输入不会传递到子窗口。我所要做的就是更新每个子窗口以接收 EnterWindowMask 事件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。