曲径通幽论坛

标题: 消息和回调函数 [打印本页]

作者: beyes    时间: 2009-8-7 19:25
标题: 消息和回调函数
图形用户界面程序是事件驱动程序。当程序进入 gtk_main() 函数后,等待事件的发生,一旦发生某个事件,相应的信号将产生。如果程序中定义了相应的消息处理函数,系统就会自动进行调用相应的消息处理函数。消息处理函数 ( 或称 回调函数 )的原型是:
void callback_func (GtkWidget *widget, gpointer func_data);
widget 指向要接收消息的控件;
func_data 指向消息产生时传递给函数的数据。

g_signal_connect() 函数原型
gulong g_signal_connect ( GtkObject *object, gchar *name, Gcallback, callback_func, gpointer func_data );

参数说明
函数说明
   该函数的返回值用于区分一个空间的一个事件对应的多个处理函数。一个空间上可以发生多个事件,比如单击一个按钮,双击一个按钮。对于一个控件上的每个事件可以有 0 个, 1 个或者多个处理函数。该事件发生时,按声明的顺序逐个调用这些函数。对应于某个事件,如果空间没有定义处理函数,那么事件发生时将没有响应,系统忽略此事件。

一个与 g_signal_connect() 类似的函数:
gint g_signal_connect_swapped (GtkObject *object, gchar *name, GCallback callback_func, GtkObject *slot_object);
此函数的第 4 个参数指向一个 GTK+ 控件的指针。它与 g_signal_connect() 的区别在于相应的回调函数只有一个参数:
void callback_func (GtkObject *object);
通常 object 指向一个控件。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2