gdk模拟鼠标按键事件/焦点事件

参考:

http://library.gnome.org/devel/gdk/stable/gdk-Event-Structures.html#GdkEventButton

 

 #include <glib.h>
 #include <gtk/gtk.h>

void example (GtkWidget  *mainWindow) {
 GdkEvent *press_event;
 press_event = gdk_event_new (GDK_BUTTON_PRESS);//新建鼠标事件
 press_event->button.button = 1; // 鼠标左键
 press_event->button.window = GTK_WIDGET(mainWindow)->window;//需要接收鼠标事件的控件
 g_object_ref (press_event->button.window);
 //gdk_threads_enter();// 需要init g_thread支持
 gtk_main_do_event (press_event);
 //gdk_threads_leave ();


 // 模拟焦点事件
 GdkEvent *focus_event;
 focus_event = gdk_event_new (GDK_FOCUS_CHANGE);
 focus_event->focus_change.window = GTK_WIDGET(mainWindow)->window;
 focus_event->focus_change.in = TRUE;
 focus_event->focus_change.send_event = TRUE;
 g_object_ref (focus_event->focus_change.window);
 gtk_main_do_event (focus_event);
}

你可能感兴趣的:(thread,html)