最近在做一个GTK的报表程序,对于不同的报表元素,要响应鼠标 的事件,以显示不同的控件来修改这些元素值。因为画报表元素用的是 GtkDrawingArea控件,而这个控件不能接收任何消息,只好把它加到一个GtkEventBox上,然后通过GtkEventBox来关联消息,才算是得到了鼠标消息。代码如下 : GtkWidget *da2; da2 = gtk_drawing_area_new(); gtk_widget_set_size_request ( da2, 200, 200 ); GtkWidget ×event_box = gtk_event_box_new (); gtk_container_add ( GTK_CONTAINER ( event_box ), da2 ); gtk_box_pack_start ( GTK_BOX ( vbox2), event_box, TRUE, TRUE, 0 ); g_signal_connect ( event_box, "button_press_event", GTK_SIGNAL_FUNC( click_on_da2 ), mw->_reportDoc ); g_signal_connect ( event_box, "button_release_event", GTK_SIGNAL_FUNC ( release_on_da2), mw->_reportDoc);