Bonjour,
j'ai cherché à droite et à gauche et je n'arrive pas à résoudre mon problème,
j'essaye juste d'afficher un rectangle rouge dans un drawing_area, la actuellement, avec le code ci dessous, je n'ai rien, juste la fenetre gtk.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <stdlib.h>
#include <stdio.h> 
#include <gtk/gtk.h>
 
#define LONGUEUR 650
#define LARGEUR 300
 
GtkWidget *dessin;
GdkPixmap *pixmap = NULL;;
 
static gboolean realisation(GtkWidget *dessin,GdkEventConfigure *event)
{
  GdkColor rouge;
  rouge.pixel=0;
  rouge.red=0xFFFF;
  rouge.green=0;
  rouge.blue=0;
 
  GdkGC *kontext = gdk_gc_new (dessin->window);
  gdk_gc_set_foreground (kontext, &rouge);
 
  pixmap = gdk_pixmap_new(dessin->window,dessin->allocation.width,dessin->allocation.height,-1);
 
  gdk_draw_rectangle(pixmap,kontext,TRUE,50,50,50,50);
 
  gtk_widget_queue_draw(dessin);
 
  return TRUE;
}
 
 
void start_gtk(int argc,char **argv)
{   
	gtk_init (&argc, &argv);  
 
  GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);    
  gtk_container_set_border_width (GTK_CONTAINER (win), 0);
  gtk_window_set_title (GTK_WINDOW (win), "rectangle");
  gtk_window_set_position (GTK_WINDOW (win), GTK_WIN_POS_CENTER);
  gtk_window_set_default_size(GTK_WINDOW(win), LONGUEUR, LARGEUR);
  g_signal_connect (win, "destroy", gtk_main_quit, NULL);
  gtk_widget_realize (win);
 
  GtkWidget *box = gtk_vbox_new (FALSE, 0);
  gtk_container_add (GTK_CONTAINER (win), box);
 
  GtkWidget *dessin = gtk_drawing_area_new();
  gtk_drawing_area_size(GTK_DRAWING_AREA(dessin),200, 400);
	gtk_container_add (GTK_CONTAINER (box), dessin);
 
  g_signal_connect(G_OBJECT(dessin), "realize", G_CALLBACK(realisation), NULL);
 
	gtk_widget_show_all (win);	
	gtk_main ();    
}
 
int main(int argc,char **argv)
{
	start_gtk(argc,argv);
	return 0;
}
Le code est compilable sans erreurs et je suis sous windows.

Merci de votre aide