现在的位置: 首页 > 综合 > 正文

X Window自学笔记

2013年10月18日 ⁄ 综合 ⁄ 共 647字 ⁄ 字号 评论关闭

这几天在使用Xlib做SDL,在此将曾遇到的几个问题先记下来,以备重查。

 

(1)像XCreateSimpleWindow()、XMoveWindow()等函数使用后不会马上生效,而需要XNextEvent(display, &event)来和X Server交互以生效。

(2)Window win = XCreateSimpleWindow(display, RootWindow(display, screen), x, y, width, height, 0, BlackPixel(display, screen), WhitePixel(display, screen))中无论x,y填何值,XNextEvent(display, &event)后窗口都会创建在屏幕左上角,原因很多网友也遇到了,没找到答案,解决方法可以在第一个XNextEvent(display, &event)前加一句XMoveWindow(display, win, 400, 100)即可。

(3)SDL初始化,即NS_DrawAreaInit(initinfo),必须在窗口显示后才行,即一定要在第一个XNextEvent(display, &event)后进行,否则X Server会返回参数错误,直接关闭X Client。

(4)编译指令:

cc xlibex.c -o xlibex -L/usr/X11/lib -lX11 -g (只是用Xlib)

g++ xtex.cpp -o xtex -L/usr/X11/lib -lX11 -lXt -lXaw -g (使用Xlib和Xt)

抱歉!评论已关闭.