曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 6692|回复: 0
打印 上一主题 下一主题

消息和回调函数

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2009-8-7 19:25:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
图形用户界面程序是事件驱动程序。当程序进入 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 );

参数说明
      object :  指向产生消息的控件。
      name :  消息或事件的名称。
      callback_func : 事件发生后要执行的回调函数
      func_data : 传递给回调函数的数据,与 callback_func() 的第二个参数相同
函数说明
   该函数的返回值用于区分一个空间的一个事件对应的多个处理函数。一个空间上可以发生多个事件,比如单击一个按钮,双击一个按钮。对于一个控件上的每个事件可以有 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 指向一个控件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-8 00:54 , Processed in 0.060434 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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