在GTK+的用户手册中,frame是有5中样式的 似乎都是一样的啊。 以下是我的程序 # include<gtk/gtk.h> void on_destroy(GtkWidget *widget, gpointer data) { gtk_main_quit(); } void *Create(GtkWidget *box, gchar *st, GtkShadowType type) { GtkWidget *frame; frame = gtk_frame_new(st); gtk_frame_set_shadow_type(GTK_FRAME(frame), type); gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 10); } gint main(gint argc, gchar *argv[]) { GtkWidget *window; GtkWidget *box; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window), 100, 700); box = gtk_hbox_new(TRUE, 20); Create(box, "GTK_SHADOW_NONE", GTK_SHADOW_NONE); Create(box, "GTK_SHADOW_IN", GTK_SHADOW_IN); Create(box, "GTK_SHADOW_OUT", GTK_SHADOW_OUT); Create(box, "GTK_SHADOW_ETCHED_IN", GTK_SHADOW_ETCHED_IN); Create(box, "GTK_SHADOW_ETCHED_OUT", GTK_SHADOW_ETCHED_OUT); gtk_container_add(GTK_CONTAINER(window), box); gtk_signal_connect(GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(on_destroy), NULL); gtk_widget_show_all(window); gtk_main(); return 0; }