XQueryString()将窗口外的鼠标指针位置返回为正值

时间:2016-05-23 12:05:15

标签: c++ linux xlib

我创建了一个带有Xlib的窗口,并注册接收某些事件,你可以在下面看到,但是我对这个问题主要感兴趣,我遇到的问题是在创建的窗口中接收鼠标位置事件< / p>

当我编译并运行程序时,它工作正常,但是它给了我鼠标指针的位置,即使它在窗口的右侧和左侧作为正数

例如,当我打印出win_x和win_y以查看它返回的位置时,它给出了超出其高度和宽度的位置,在右侧和下方为正,但是比窗口高度和宽度范围大的数字,但是在窗口和左侧上方,当鼠标位置在窗口边界之外时,它给出了负值(这是正确的和预期的)

所以我想知道的是,有可能返回创建的窗口的鼠标指针位置,只要鼠标指针位于窗口边框之外的任何一侧而不仅仅是左侧,并且还显示负x和y位置。窗口的顶部边界?

我希望这个问题有意义,如果您需要更多代码信息,我将编辑此问题并添加

我也是Xlib编程的初学者,这里是相关的代码

win = XCreateWindow( dpy, RootWindow( dpy, vi->screen ), 
                              0, 0, 1080, 720, 0, vi->depth, InputOutput, 
                              vi->visual, 
                              CWBorderPixel|CWColormap|CWEventMask, &swa );

XSelectInput(dpy, win, ButtonPressMask|KeyPressMask|MotionNotify|EnterWindowMask);

XQueryPointer(dpy, win, &ret_root, &ret_child, &root_x, &root_y,&win_x, &win_y, &mask)

0 个答案:

没有答案