IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxWidgets Discussion :

wxWidget et le C++


Sujet :

wxWidgets

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Topeur
    Profil pro
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Par défaut wxWidget et le C++
    Bonjour a tous,

    Je me permet de poster mon code car je me retrouve un peu perdu dans ce que je voulais faire.
    J'ai monté une interface et je commence a ajouter des fonctionnalités à chaque boutons
    Jusque la, tout va bien, chaque bouton pressé m'affiche une wxMessageBox avec un message que j'attends a l'intérieur

    Par contre, voila mon souci, je voudrais récupérer des éléments de mon menu, et la je n'y arrive pas
    Voici comment mon programme est construit

    Mes 2 classes :

    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
     
    class F_Frame: public wxFrame
    {
    	public:
    		F_Menu *Menu;
    	public:
    		F_Frame(wxWindow *parent, const wxString &title);
    		~F_Frame();
     
    	DECLARE_EVENT_TABLE()
    };
     
     
    class F_Menu:public wxMenuBar	
    {
    	public:
    		F_Menu(wxFrame *wxF, F_LibTexte LibS);
    		~F_Menu();
     
    		void ClicCreer(wxCommandEvent& WXUNUSED(event));
     
    };
    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
     
    //Constructeur
    F_Frame::F_Frame(wxWindow *parent, const wxString& title): wxFrame(parent, -1, title)
    {
    	//Création du menu
    	F_LibTexte	LibStrings;
     
    	Menu = new F_Menu(this, LibStrings);		//On charge le menu de l'interface avec les noms precedents
     
    }
     
     
    //Constructeur
    F_Menu::F_Menu(wxFrame *wxF, F_LibTexte LibS)
    {
    	//Creation d'un menu auquel on ajoute des elements
    	wxMenu *menuFichier = new wxMenu;
    	menuFichier->Append(wxID_EXIT, LibS.Menu.Menu_fichier.SQuitter,	LibS.HMenu.Menu_fichier.SQuitter);
     
        // On attache les menus a une barre de menu...
    	this->Append(menuFichier, LibS.Menu.SFichier);
     
        // ... que l'on attache a la frame
        wxF->SetMenuBar(this);
     
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    BEGIN_EVENT_TABLE(FR2_Frame, wxFrame)
    	EVT_MENU(FR2_ID_CREER,		FR2_Menu::ClicCreer)
    END_EVENT_TABLE()
    Un wxMenuBar appelé Menu est instancié dans le constructeur de ma frame
    quand je clique sur le bouton créer, j'arrive dans la bonne fonction ClicCreer, cependant, je n'arrive pas a récupérer des éléments comme le nombre de menu ou des choses du type
    Voici ce que j'utilisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    wxMessageBox(wxString::Format(wxT("Valeur GetValue: %d\n"),this->GetMenuCount()));
    Pour 4 menus, ce chiffre affiche n'importe quoi genre 4879875112

    Est ce que vous auriez une piste ? Je peux aussi donner des compléments
    En fait pour le moment je suis assez perdu

    Merci d'avance pour votre aide !

  2. #2
    Membre chevronné Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Par défaut
    Salut.
    Ça ne résoudra sans doute pas ton problème, mais il y a un truc qui me chiffonne :
    Tu appelles une méthode de ta classe menu depuis la table d'événements de ta classe frame.
    Pourquoi ne mets-tu pas une table d'événements dans la classe menu directement ? Ça me paraîtrait plus logique.

    Bref, sinon, pour ton problème à proprement parler, il faudrait un peu plus de code : peux-tu mettre le code correspondant au constructeur de la frame (et celui où tu crées le menu, si ça ne se fait pas au même endroit) ?

    @+
    Xav'

  3. #3
    Membre confirmé Avatar de Topeur
    Profil pro
    Inscrit en
    Février 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 91
    Par défaut
    Citation Envoyé par wxXav Voir le message
    Salut.
    Pourquoi ne mets-tu pas une table d'événements dans la classe menu directement ? Ça me paraîtrait plus logique.
    Ça me chiffonnai aussi d'écrire quelque chose comme ça, toutefois, voici ce que je peux ajouter

    Lorsque je crée une table d'événement dans la classe de ma BarreMenu, plus aucuns événements ne fonctionnent. Les clics bouton ne fonctionnent plus.

    J'ai donc fait autre chose. Mes fonctions, qui se trouvaient dans ma classe du menu, sont maintenant dans la classe de la Frame
    Les événements fonctionnent correctement
    Je récupère tout les paramètres dont j'ai besoin

    (ce qui reste dommage c'est de ne pas avoir réussi a obtenir mes éléments de menu, dans le menu, m'est ça doit juste être un passage de paramètres foireux ou quelque chose du genre )

    EDIT : J'ai modifié mon premier post pour y ajouter les Constructeurs


    EDIT2 : J'ai trouvé un lien qui correspond a l'idée que j'avais
    http://www.developpez.net/forums/d61...u-evennements/
    Dans ce lien, on conseille a la personne de tout regrouper et surtout de ne pas faire ce que j'ai fais. Je vais donc réintégrer mon menu dans ma frame et tout se passera pour le mieux

    merci Xav

  4. #4
    Membre chevronné Avatar de wxXav
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Décembre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur amateur

    Informations forums :
    Inscription : Décembre 2008
    Messages : 214
    Par défaut
    Juste pour info (et c'est justement pour vérifier ça que je t'avais demandé de mettre le code) : dans le constructeur de ta menubar, tu n'appelles jamais le constructeur de la classe wxMenuBar (comme tu le fais pour la wxFrame).

    @+
    Xav'

Discussions similaires

  1. wxWidgets : connaître l'etat d'un bouton !
    Par FSF_Sterl dans le forum wxWidgets
    Réponses: 5
    Dernier message: 14/08/2004, 08h55
  2. PB d'installation wxwidgets BCB6
    Par PsychicStorm dans le forum C++Builder
    Réponses: 3
    Dernier message: 18/05/2004, 16h02
  3. Réponses: 1
    Dernier message: 16/05/2004, 17h56
  4. wxWidgets - besoins d'aide...
    Par barbarello dans le forum wxWidgets
    Réponses: 2
    Dernier message: 07/05/2004, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo