2010-08-14 101 views
2

我正在研究一个基于Linux的I/O验证工具,在一个游戏项目中。它是用C++编写的,由于使用了与我们的游戏相同的I/O模块,因此它基于OIS 1.2。因此,尽管我只需要在控制台上打印用户的输入,但我仍然需要为OIS创建一个窗口。如何使用XLib创建映射但不可见的窗口?

因此,我的问题是:我怎样才能创建一个映射窗口,而它仍然是不可见的,并处理键盘事件?

我无法取消映射窗口,因为它不会再处理任何键盘事件。我也找不到显示/隐藏窗口的功能(也许我通过错误的方向搜索...)

我的小工具现在工作正常,除了有一个愚蠢的顶级空窗口需要专注于处理键盘事件...

欢迎任何意见。

谢谢!

+2

show/hide = map/unmap in X11 – 2011-08-29 22:51:34

回答

2

看完这篇文章后:Linux/X11 input library without creating a window, 我意识到我的问题是我误解了X11的哲学。我需要做的只是将根窗口句柄传递给OIS,并将x11_grabkeyboard标志设置为true。唯一的缺点是,也许我很难用gdb调试我的程序,因为键盘被卡住了...

虽然我的情况已经解决,但还剩一件事。

的每一篇文章我看书上说的InputOnly窗口将是不可见的,并且能够用于处理输入事件,而我的InputOnly窗口映射后绝对可见......

也许这是我的Linux,或者再等误会...