LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 814|回复: 0

请教一个xlib编程的基础问题

[复制链接]
发表于 2008-5-22 02:06:44 | 显示全部楼层 |阅读模式
下面这小段代码为什么不能收到任何的xevent呢?
取到的screen的分辨率和我桌面的分辨率是一样的,XOpenDisplay(NULL)这个应该是取当前桌面吧?
  1. #include <X11/Xlib.h>
  2. #include <assert.h>   
  3. #include <unistd.h>  
  4. #include <stdio.h>

  5. int main() {

  6.         Display *display = XOpenDisplay(NULL);
  7.         assert(display);

  8.         Screen *screen=XDefaultScreenOfDisplay(display);
  9.         int width=XWidthOfScreen(screen);
  10.         int height=XHeightOfScreen(screen);
  11.         printf("width:%d,height:%d\n", width, height);
  12.        
  13.         int f=1;
  14.         while (f) {
  15.                 if (XPending(display)) {
  16.                         int eq=XEventsQueued(display, QueuedAlready);
  17.                         printf("events num in queue:%d\n", eq);
  18.                         XEvent e;
  19.                         XNextEvent(display, &e);
  20.                         printf("event type:%d\n", e.type);
  21.                         if (e.type == KeyPress) {
  22.                                 XKeyEvent y=e.xkey;
  23.                                 unsigned int keycode=y.keycode;
  24.                                 unsigned int state=y.state;
  25.                                 printf("keycode:%d,state:%d\n", keycode, state);
  26.                                 break;
  27.                         }
  28.                 }
  29.         }
  30.         return 0;
  31. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表