"); //-->
代码:
#include <gtk-2.0/gtk/gtk.h> #include <gtk-2.0/gdk/gdkkeysyms.h> #include <glib-2.0/glib.h> #include <stdio.h> gint delete_event( GtkWidget *window, GdkEvent *event, gpointer data ){ GtkWidget *dialogCloseWindow; GtkWidget *lbClose; GtkWidget *imgClose; GtkWidget *hbClose; gint diologChoose; dialogCloseWindow = gtk_dialog_new_with_buttons ("退出程序对话框", GTK_WINDOW(window), GTK_DIALOG_MODAL, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_widget_set_name(GTK_WIDGET(dialogCloseWindow),"modelwindow"); lbClose = gtk_label_new ("是否要退出程序?"); imgClose = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG); hbClose = gtk_hbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER (hbClose), 10); gtk_box_pack_start_defaults (GTK_BOX (hbClose), imgClose); gtk_box_pack_start_defaults (GTK_BOX (hbClose), lbClose); gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG (dialogCloseWindow)->vbox), hbClose); gtk_widget_show_all (dialogCloseWindow); diologChoose = gtk_dialog_run (GTK_DIALOG (dialogCloseWindow)); if (diologChoose == GTK_RESPONSE_OK) { gtk_widget_destroy(dialogCloseWindow); return FALSE; } else{ gtk_widget_destroy(dialogCloseWindow); return TRUE; } } void destroy(GtkWidget *window, gpointer data) { gtk_main_quit(); } int main(int argc, char *argv[]) { gtk_init(&argc, &argv); GtkWidget *window; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "回调函数演示"); gtk_widget_show(window); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL); gtk_main(); return 0; }
编译运行
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。