Bonjour,
Suite a mon post sur la gestion de Multi Windows sur wxWidget, j'ai testé d'utiliser les DMI, +/- avec succes. Le sample est pas si fou que ca (en gros 0 commentaire dans le code, ce qui rend difficile sa lecture ^^ surtout que du wxWidget c'est pas si evident que ca a lire en y etant nouveau..).
Bref, voila mon soucis :
j'arrive tres bien a avoir 2 fenetres ouvertes independantes (non modal window) mais des lors que j'essaie de les creer en tant que wxMDIChildFrame et on en tant que wxFrame, je recois une erreur la : wxMDIClientWindow (dans mdi.h ligne 75 de la lib).
J'imagine donc qu'il me faut un client window..
1/ on a bien frame = window + toolbar+menu+'close/maximize/minimize' ?
2/ Voila mon code qui me renvoie l'erreur a l'execution :
et le constructeur de ma classe MyFrame :
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 bool MyApp::OnInit() { wxInitAllImageHandlers(); wxMDIParentFrame *mainWindow = new wxMDIParentFrame(NULL,1,"coucou"); wxFrame *frame = new MyFrame(mainWindow, "test1.txt", wxColour(255,0,0,0)); mainWindow->AddChild(frame); frame->Show( TRUE ); wxFrame *frame2 = new MyFrame(mainWindow, "test2.txt", wxColour(0,255,0,0)); mainWindow->AddChild(frame2); frame2->Show( TRUE ); mainWindow->Show(TRUE); return TRUE; }
NB : mon code "marche" avec des wxFrame au lieu des wxMDIChildFrame mais je n'arrive pas les inclure dans une window parente...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 MyFrame::MyFrame(wxMDIParentFrame* parent, std::string fileCurveName, wxColour color) : wxMDIChildFrame(parent, -1, wxT("Visualisation Tool"), wxDefaultPosition, wxSize(500, 500)) { // creation de menu }
Merci d'avance =)
Pour etre plus clair, si ca peut marcher depuis le code que j'ai deja, je suis preneur aussi - cad simplement ajouter un parent a 2 wxFrame ...
Edit : le code qui marche avec les wxFrame ressemblent a ceci :
avec MyFrame qui extendent wxFrame et non wxMDIChildFrame...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 wxFrame *frame = new MyFrame("test1.txt", wxColour(255,0,0,0)); frame->Show( TRUE ); wxFrame *frame2 = new MyFrame("test2.txt", wxColour(0,255,0,0)); frame2->Show( TRUE ); return TRUE;
Partager