LinuxSir.cn,穿越时空的Linuxsir!

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

问个grab 鼠标键盘事件的问题

[复制链接]
发表于 2009-4-3 16:56:33 | 显示全部楼层 |阅读模式
想写一个简单的gui程序,这个程序可以把鼠标跟键盘事件全部都抓取过来,使得用户点击其它程序没有反应,但又不想让用户看见这个程序。

自己想的一个简单方法是,创建一个gtk_window,然后不设置border,接着把window设为透明的,这样用户就看不见程序了。
可是我用gdk_pointer_grab的时候,虽然返回值显示成功,可是根本不起任何作用


  1. int main( int argc, char *argv[])
  2. {

  3.         GtkWidget *window;

  4.         gtk_init(&argc, &argv);

  5.         window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  6.         gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
  7.         gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
  8.         gtk_window_set_decorated(GTK_WINDOW (window), TRUE);



  9.         g_signal_connect_swapped(G_OBJECT(window), "destroy",
  10.                         G_CALLBACK(gtk_main_quit), G_OBJECT(window));

  11.         gtk_widget_show(window);
  12.         while (1)
  13.         {
  14.                 if(gdk_pointer_grab(window->window,FALSE,
  15.                                   0,window->window,NULL,GDK_CURRENT_TIME))
  16.                 {
  17.                         printf("grab success\n");
  18.                         break;
  19.                 }
  20.                 else
  21.                 {
  22.                         printf("failed\n");
  23.                         usleep(10000);
  24.                 }

  25.         }

  26.         gtk_main();
  27.         return 0;
  28. }

复制代码


因为刚开始学gtk,也不是很明白,搜了很多,也没发现合适的
不知有人可以解答不?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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