Bonjour,

J'ai un probleme que ne sais pas resourdre par manque de connaissance C++ ou wxWidgets.
Par le code suivant, dans une boite de dialogue j'ai :
-un champ de saisie de type wxTextCtrl
-un champ d'affichage, type wxStaticText (qui devrait reprendre la valeur du wxTextCtrl)
- Un bouton de rafraichissement

Voici le code en un seul fichier cpp:
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
 
#include <wx/wx.h>
class MainApp:public wxApp
{
public:
virtual bool OnInit();
};
 
class MainWindow:public wxDialog
{
public:
MainWindow(const wxString &title,const wxPoint &pos,const wxSize &size);
DECLARE_EVENT_TABLE();
void OnQuit(wxCloseEvent &event);
void OnClick(wxCommandEvent &event);
enum
    {
    ID_CLICK,
    ID_CHAMP_SAISIE
    };
};
 
 
IMPLEMENT_APP(MainApp)
BEGIN_EVENT_TABLE(MainWindow,wxDialog)
    EVT_BUTTON(ID_CLICK,MainWindow::OnClick)
    EVT_CLOSE(MainWindow::OnQuit)
END_EVENT_TABLE()
 
bool MainApp::OnInit()
{
MainWindow *win=new MainWindow("boite a dialogue",wxPoint(250,300),wxSize(350,250));
win->Show(true);
SetTopWindow(win);
return true;
}
 
MainWindow::MainWindow(const wxString &title,const wxPoint &pos,const wxSize &size)
:wxDialog((wxDialog *)NULL,-1,title,pos,size,wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTHICK_FRAME)
{
//etape 1
wxTextCtrl *champ=new wxTextCtrl(this,-1,"Entrer du texte ici");
wxBoxSizer *cadrepcp=new wxBoxSizer(wxVERTICAL);
wxFlexGridSizer *cadreflex=new wxFlexGridSizer(1,2,10,10);
cadreflex->Add(new wxStaticText(this,-1,"Champ de saisie de texte : "),1);
cadreflex->Add(champ,ID_CHAMP_SAISIE,1);
cadrepcp->Add(cadreflex,0,wxALIGN_CENTER|wxGROW|wxALL,25);
wxString saisie=champ->GetValue();
 
//etape 2
wxStaticText *statext=new wxStaticText(this,0,saisie);
wxStaticBox *statbx=new wxStaticBox(this,0,"Résultat");
wxBoxSizer *cadrestatic=new wxStaticBoxSizer(statbx,wxHORIZONTAL);
cadrestatic->Add(statext,0,wxALIGN_CENTER|wxGROW|wxALL,25);
cadrepcp->Add(cadrestatic,0,wxALIGN_CENTER);
 
//etape 3
wxBoxSizer *clicksizer=new wxBoxSizer(wxHORIZONTAL);
wxButton *clickme=new wxButton(this,ID_CLICK,"Rafraichir");
clicksizer->Add(clickme,0,wxALIGN_CENTER|wxGROW|wxALL,25);
cadrepcp->Add(clicksizer,0,wxALIGN_CENTER);
 
SetSizer(cadrepcp);
SetAutoLayout(true);
Layout();
}
 
void MainWindow::OnClick(wxCommandEvent &event)
{
this->Refresh();
}
 
void MainWindow::OnQuit(wxCloseEvent &event)
{
this->Destroy();
}
comment reprendre la valeur du champ de saisie pour l'afficher ou comment rafraichir les données de la fenetre ??

Merci de votre aide