Bonjour à tous,
je débute avec WxWidgets (pour ceux qui confissent pas : c'est une librairie qui permet de faire un GUI multi-plateforme. Elle est utilisée dans filezilla, codeblocks....etc…).
je viens d'installer la librairie (sous windows). Pour faire un test de compilation, j'ai pris un petit exemple sur internet(sur le siteduzero). je m’attendais a avoir un beau design windows-7 like, comme celui ci :
mais à la place, j'obtient ceci :
ou est passé le beau design aero de windows 7? que s'est il passé?
..je suppose que cela vient de mon compilateur(gcc 4.9.2 - mingw), ou de la librairie wxWidgets que j'ai mal compilée?
Voici mon code source, ainsi que la ligne de commande de compilation : (je précise que celui ci compile sans warning, il est correct)
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 | /* ligne de compilation : g++.exe main.cpp -o main.exe -lwxmsw31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -mthreads -DHAVE_W32API_H -D__WXMSW__ -D__WXDEBUG__ -D_UNICODE -DWXUSINGDLL -Wno-ctor-dtor-privacy -pipe -fmessage-length=0 -mwindows */ #include <wx/wx.h> #include <wx/statline.h> class MyApp : public wxApp { public : virtual bool OnInit(); }; DECLARE_APP(MyApp); class MainFrame : public wxFrame { public: MainFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title) { wxPanel *panelAffichage = new wxPanel(this, -1);// Création du panel d'affichage wxBoxSizer *sizer_intermed = new wxBoxSizer(wxVERTICAL); // Création du wxBoxSizer intermédiaire wxStaticBoxSizer *cadre = new wxStaticBoxSizer(wxVERTICAL, panelAffichage, _T("Informations : ")); // Création du wxStaticBoxSizer pour le cadre wxFlexGridSizer *grille = new wxFlexGridSizer(4, 2, 5, 5);// Création du wxFlexGridSizer wxStaticText *labelNom = new wxStaticText(panelAffichage, -1, _T("Nom :")); // wxStaticText pour le nom grille->Add(labelNom, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT); wxTextCtrl *txtNom = new wxTextCtrl(panelAffichage, -1, _T("")); // wxTextCtrl pour le nom grille->Add(txtNom, 0, wxEXPAND); wxStaticText *labelPrenom = new wxStaticText(panelAffichage, -1, _T("Prénom :")); // wxStaticText pour le prénom grille->Add(labelPrenom, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT); wxTextCtrl *txtPrenom = new wxTextCtrl(panelAffichage, -1, _T("")); grille->Add(txtPrenom, 0, wxEXPAND); // wxTextCtrl pour le prénom wxStaticText *labelDate = new wxStaticText(panelAffichage, -1, _T("Date de naissance :")); // wxStaticText pour la date de naissance grille->Add(labelDate, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT); wxTextCtrl *txtDate = new wxTextCtrl(panelAffichage, -1, _T("")); // wxTextCtrl pour la date de naissance grille->Add(txtDate, 0, wxEXPAND); wxStaticText *labelComm = new wxStaticText(panelAffichage, -1, _T("Commentaires :"));// wxStaticText pour les commentaires grille->Add(labelComm, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT); wxTextCtrl *txtComm = new wxTextCtrl(panelAffichage, -1, _T(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE); grille->Add(txtComm, 0, wxEXPAND);// wxTextCtrl pour les commentaires cadre->Add(grille, 1, wxALL | wxEXPAND, 5);// Ajout de la grille au wxStaticBoxSizer grille->AddGrowableCol(1);// La deuxième colonne est extensible grille->AddGrowableRow(3); // La quatrième ligne également sizer_intermed->Add(cadre, 1, wxALL | wxEXPAND, 5); // Ajout du wxStaticBoxSizer au sizer intermédiaire wxStaticLine *ligneHoriz = new wxStaticLine(panelAffichage, -1); // Création de la ligne de séparation horizontale et ajout au sizer intermédiaire sizer_intermed->Add(ligneHoriz, 0, wxALL | wxEXPAND, 5); wxBoxSizer *sizer_boutons = new wxBoxSizer(wxHORIZONTAL); // Création du wxBoxSizer pour les boutons wxButton *btnValider = new wxButton(panelAffichage, -1, _T("Valider")); // Création du bouton "Valider" sizer_boutons->Add(btnValider, 0); sizer_boutons->AddSpacer(5);// Ajout d'un espace entre les deux boutons wxButton *btnAnnuler = new wxButton(panelAffichage, -1, _T("Annuler"));// Création du bouton "Annuler" sizer_boutons->Add(btnAnnuler, 0); sizer_intermed->Add(sizer_boutons, 0, wxALIGN_RIGHT | wxALL, 5); // Ajout du sizer des boutons au sizer intermédiaire panelAffichage->SetSizer(sizer_intermed); // Affectation du sizer intermédiaire au wxPanel } virtual ~MainFrame(){}; }; IMPLEMENT_APP(MyApp); bool MyApp::OnInit() { MainFrame *frm=new MainFrame(_T("Test")); frm->Show(); return true; } |