将 X11 光标设置为箭头
我在调用 XCreateWindow() 时尝试了以下操作:
unsigned long ctt_attribute_mask = CWWinGravity | CWCursor;
ctt_attributes->win_gravity = NorthEastGravity;
ctt_attributes->cursor = XC_arrow;
ctt_window = XCreateWindow(dpy, parent, ctt_xpos, ctt_ypos,
ctt_xy_size, ctt_xy_size, ctt_border,
ctt_depth, ctt_class, ctt_visual,
ctt_attribute_mask, ctt_attributes);
这将创建窗口,但当指针滚动到窗口上时,它不会影响指针。
当鼠标出现在我的窗口上时,我想使用用户桌面环境的标准指针光标。
Xlib 是必需的,因为这是一个与工具包无关的程序。
预计到达时间:有更多上下文可用;请参阅 源文件。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ctt_attributes->cursor = XCreateFontCursor(dpy, XC_arrow);
ctt_attributes->cursor = XCreateFontCursor(dpy, XC_arrow);
这是《Xlib 编程手册》第 1 卷第 182 页中的示例。
所以看起来 nm 是正确的。您需要调用 XCreateFontCursor 来将 XC_arrow (它只是一个整数,指定字体编码向量中的光标位置)转换为 Cursor 资源。我认为 Cursor 资源也只是一个整数。这就是为什么你没有得到编译错误。但你确实存在类型不匹配。
Here's the example from The Xlib Programming Manual, vol 1, p 182.
So it looks like n.m. is spot-on. You need to call
XCreateFontCursor
to translate XC_arrow (which is just an integer that designates the cursor's location in the font's encoding vector) into a Cursor resource. I think the Cursor resource is just an integer, too. That's why you get no compile error. But you do indeed have a type mismatch.