Soyez le premier à donner votre avis sur cette source.
Snippet vu 5 477 fois - Téléchargée 35 fois
// main.h #ifndef _MAIN_H_ #define _MAIN_H_ #include <wx/wx.h> // le header principal pour wx class MainApp : public wxApp // la classe application est le point d'entrée du programme { public: virtual bool OnInit(void); // on surcharge OnInit }; class AppFrame : public wxFrame // on peut utiliser wxFrame telle quelle mais on la dérive pour gerer nos propres evenements { public: AppFrame(const wxString &title, const wxPoint &pos, const wxSize &size);// constructeur void OnQuit(wxCommandEvent &event); // evenement "l'utilisateur veut quitter" void OnAbout(wxCommandEvent &event); // evenement "l'utilisateur clique sur le menu 'A props'" private: DECLARE_EVENT_TABLE() }; enum // l'enum permet de creer un type d'entiers scalaires; c'est plus pratique qu'un #define car ca s'auto incrémente { MainApp_Quit = 1,// ID des evenements MainApp_About }; BEGIN_EVENT_TABLE(AppFrame, wxFrame)//on definit les evenements pour la classe wxAppFrame dérivée de wxFrame EVT_MENU(MainApp_Quit, AppFrame::OnQuit)//On associe chaque ID d'evenement avec une fonction EVT_MENU(MainApp_About, AppFrame::OnAbout) END_EVENT_TABLE() #endif _MAIN_H__ // main.cpp #include <wx/wx.h> #include "main.h" IMPLEMENT_APP(MainApp) // wx se debrouille pour initialiser le programme avec notre classe MainApp bool MainApp::OnInit() { AppFrame *frame; frame = new AppFrame("La super application!", wxPoint(50, 50), wxSize(450, 340));// creation de la fenetre frame->Show(TRUE);// et on l'affiche return TRUE; // si on retourne false, le programme s'arrete } AppFrame::AppFrame(const wxString &title, const wxPoint &pos, const wxSize& size) : wxFrame ((wxFrame *) NULL, -1, title, pos, size) { wxMenuBar *menuBar; wxMenu *fileMenu; SetIcon(wxICON(A));// A est le nom donné à l'icone principale par Dev-C++ fileMenu = new wxMenu("", wxMENU_TEAROFF); fileMenu->Append(MainApp_About, "&A propos...\tCtrl-A", "Montre la fenetre \'A propos\'"); fileMenu->Append(MainApp_Quit, "&Quitter\tCtrl-Q", "Quitter le programme"); // on Ajoute des menus au menu "Fichier" dans la barre; l'ordre compte // Parametres : ID de l'evenement à lancer, chaine à afficher+raccourci clavier, chaine à afficher dans la barre de statut menuBar = new wxMenuBar(); menuBar->Append(fileMenu, "&Fichier"); // on attahce le menu fichier à la barre de menu SetMenuBar(menuBar);// on associe la barre de menu à notre fenetre CreateStatusBar(2);// on crée une barre de statut pour notre fenetre SetStatusText("En attente.");// on donne le texte par defaut de la barre de statut } // evenements void AppFrame::OnQuit(wxCommandEvent &WXUNUSED(event)) { Close(TRUE);// si l'utilisateur veut quitter, on ferme la fenetre // mais on peut aussi lui poser un question("voulez-vous enregistrer/quitter?"...) } void AppFrame::OnAbout(wxCommandEvent &WXUNUSED(event)) { wxString msg; msg.Printf("Mon App version tutorial"); wxMessageBox(msg, "Créé par Kami, visitez http://dreamproject.free.fr/", wxOK | wxICON_INFORMATION, this); // un equivalent du MessageBox sous Windows }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.