Bonjour/bonsoir,

Je suis en train de coder un programme en C avec Gtk+ sous Windows, mais je rencontre un bug que je ne parviens pas à cerner : quand je réduit ma fenêtre et que je la restaure, ou quand je double-clique sur la barre de titre, la mise en page ce modifie (avec certains éléments qui sortent de l'écran!!!). le fait de double-cliquer à nouveau sur la barre de titre rétablis l'apparence.

Néanmoins, même si j'ai fini par découvrir comment remettre l'apparence correctement, je souhaiterais éliminer ce problème : j'ai donc essayé d'enlevé tout ce qui n'influait pas de mon code, mais même ainsi je ne suis pas parvenus à trouver l'erreur.

Si quelqu'un aurait l'amabilité de regarder le code (réduit), je lui en serait infiniment reconnaissant :
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <stdlib.h>
#include <gtk/gtk.h>
#include <glib/gstdio.h>
void OnDestroy(GtkWidget *pWidget, gpointer pData);
 
 
gint i;
GtkWidget *pFrame=NULL;
GtkWidget *pNotebook=NULL;
GtkWidget *pSpin=NULL;
GtkWidget *pTable=NULL;
GtkWidget *pTable_CalculDesPlaces=NULL;
GtkWidget *pTable_DetailEtablissement=NULL;
GtkWidget *pWindow=NULL;
GtkWidget *pBouton_CalculerLesPlaces;
 
int main(int argc,char **argv)
{
    gtk_init(&argc,&argv);
    pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(OnDestroy), NULL);
    gtk_window_set_default_size(GTK_WINDOW(pWindow), 600, 600);
 
    pTable=gtk_table_new(3000,3000,TRUE);
    gtk_container_add(GTK_CONTAINER(pWindow), GTK_WIDGET(pTable));
 
 
 
    // Creation du GtkNotebook //
    pNotebook = gtk_notebook_new();
    gtk_table_attach_defaults(GTK_TABLE(pTable), pNotebook, 210, 550, 60, 550 );
 
 
 
 
    for(i = 0 ; i < 2 ; i++)
    {
        GtkWidget *pTabLabel;
        gchar *sTabLabel;
 
 
        switch (i)
        {
            case 0:
                pTable_DetailEtablissement = gtk_table_new(490, 340, TRUE);
                sTabLabel = g_strdup_printf("Detail Etablissement");
 
 
                pFrame = gtk_frame_new("Lundi");
                pSpin = gtk_spin_button_new_with_range(0, 1000, 1);
                gtk_container_add(GTK_CONTAINER(pFrame), pSpin);
                gtk_table_attach(GTK_TABLE(pTable_DetailEtablissement), pFrame, 0,100,60,100, GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0);
 
 
                pFrame = gtk_frame_new("Mardi");
                pSpin = gtk_spin_button_new_with_range(0, 1000, 1);
                gtk_container_add(GTK_CONTAINER(pFrame), pSpin);
                gtk_table_attach(GTK_TABLE(pTable_DetailEtablissement), pFrame, 0,100,110,150, GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0);
 
 
                pFrame = gtk_frame_new("Mercredi");
                pSpin = gtk_spin_button_new_with_range(0, 1000, 1);
                gtk_container_add(GTK_CONTAINER(pFrame), pSpin);
                gtk_table_attach(GTK_TABLE(pTable_DetailEtablissement), pFrame, 0,100,160,200, GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0);
 
 
                pFrame = gtk_frame_new("Jeudi");
                pSpin = gtk_spin_button_new_with_range(0, 1000, 1);
                gtk_container_add(GTK_CONTAINER(pFrame), pSpin);
                gtk_table_attach(GTK_TABLE(pTable_DetailEtablissement), pFrame, 0,100,210,250, GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0);
 
 
                pFrame = gtk_frame_new("Vendredi");
                pSpin = gtk_spin_button_new_with_range(0, 1000, 1);
                gtk_container_add(GTK_CONTAINER(pFrame), pSpin);
                gtk_table_attach(GTK_TABLE(pTable_DetailEtablissement), pFrame, 0,100,260,300, GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0);
 
 
 
                pTabLabel = gtk_label_new(sTabLabel);
                gtk_notebook_append_page(GTK_NOTEBOOK(pNotebook), GTK_WIDGET(pTable_DetailEtablissement), pTabLabel);
                g_free(sTabLabel);
 
 
                break;
            case 1:
                pTable_CalculDesPlaces = gtk_table_new(490, 340, TRUE);
 
                pBouton_CalculerLesPlaces = gtk_button_new_with_label("calculer l'atribution des places");
                gtk_table_attach(GTK_TABLE(pTable_CalculDesPlaces),pBouton_CalculerLesPlaces, 0,100,30,60, GTK_EXPAND|GTK_SHRINK|GTK_FILL,GTK_EXPAND|GTK_SHRINK|GTK_FILL,0,0);
 
 
 
                sTabLabel = g_strdup_printf("Calculer l'atribution des places");
                pTabLabel = gtk_label_new(sTabLabel);
                gtk_notebook_append_page(GTK_NOTEBOOK(pNotebook), GTK_WIDGET(pTable_CalculDesPlaces), pTabLabel);
                break;
        }
    }
 
 
    gtk_widget_show_all(pWindow);
    gtk_main();
    return EXIT_SUCCESS;
}
 
void OnDestroy(GtkWidget *pWidget, gpointer pData)
{
    gtk_main_quit();
}
Merci d'avance
Kartorps