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 :

lien entre les menus wxwidget


Sujet :

wxWidgets

  1. #1
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 151
    Points : 43
    Points
    43
    Par défaut lien entre les menus wxwidget
    salut je veux faire une interface qui suite à l'ouverutre d'une image,dois faire une rotation donc j'ai ecrit le petit programme sachant que j'utlise cimg pour faire la rotation
    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    #include "wx/wx.h"
    #include "CImg.h"
    #include <iostream> 
    #include<string.h>
    using namespace std; 
    #define cimg_use_jpeg
    #define cimg_use_png
    using namespace cimg_library;
     
    	// Classe application :
    	class MyApp : public wxApp
    	{
    	public:
    	   // Méthode virtuelle de démarrage de l'application :
    	    virtual bool OnInit();
    	};
     
    	// Notre fenêtre minimale :
    	class MyFrame : public wxFrame
    	{
    	public:
    	    // Constructeur :
    	    MyFrame(const wxString& title);
    	    bool TextChg;
            wxTextCtrl *mlTextCtrl;
    	    // 2 handler d'évènements
    	    void OnQuit(wxCommandEvent& event);
    	    void Onouvre(wxCommandEvent& event);
            void Onrotation(wxCommandEvent& event);
     
    	private:
    	    // la table des évènements
    	    DECLARE_EVENT_TABLE()
    	};
     
    	IMPLEMENT_APP(MyApp)
     
     
    	// Notre 'main' :
    	bool MyApp::OnInit()
    	{
    	    if ( !wxApp::OnInit() )
    	        return false;
     
    	    MyFrame *frame = new MyFrame(_T("Minimal wxWidgets App"));
    	    frame->Show(true);
     
    	    return true;
    	}
     
    	// IDs pour nos menus et contrôles :
    	enum
    	{
    	    Minimal_Quit = wxID_EXIT,
    	    Minimal_ouvre, 
            Minimal_rotation,
    	};
     
    	// La table des évènements de notre fenêtre :
    	BEGIN_EVENT_TABLE(MyFrame, wxFrame)
    	    EVT_MENU(Minimal_Quit,  MyFrame::OnQuit)
    	    EVT_MENU(Minimal_ouvre, MyFrame::Onouvre)
            EVT_MENU(Minimal_rotation, MyFrame::Onrotation)
     
    	END_EVENT_TABLE()
     
     
    	// Le constructeur de notre classe de fenêtre :
    	MyFrame::MyFrame(const wxString& title)
    	       : wxFrame(NULL, wxID_ANY, title)
    	{
    	    // Ajoutons nos menus :
    	    wxMenu *fileMenu = new wxMenu;
    	    fileMenu->Append(Minimal_Quit, _T("&Quitter\tAlt-Q"), _T("Sortir du programme"));
    	    wxMenu *file2Menu = new wxMenu;
    	    file2Menu->Append(Minimal_ouvre, _T("&ouvrir"), _T("ouvrir"));
            wxMenu *file3Menu = new wxMenu;
    	    file3Menu->Append(Minimal_rotation, _T("&rotation"), _T("rotation"));
    	    // dans une barre de menu :
    	    wxMenuBar *menuBar = new wxMenuBar();
    	    menuBar->Append(fileMenu, _T("&Fichier"));
    	    menuBar->Append(file2Menu, _T("&ouvrir"));
            menuBar->Append(file3Menu, _T("&rotation"));
    	    SetMenuBar(menuBar);
     
    	    // Une barre de statut :
    	    CreateStatusBar(2);
    	    SetStatusText(_T("Bienvenu sur notre premier projet wxWidgets avec MinGW !"));
    	}
     
     
    	// La gestion des évènements :
     
    	void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
    	{
    	    Close(true);
    	}
     
    	void MyFrame::Onouvre(wxCommandEvent& WXUNUSED(event))
    	{ 
    		wxString nomfichier = wxFileSelector(_T("Ouvrir") ,_T("") ,_T("") ,_T(""),
              _T("cpp files (*.jpg;*.bmp)|*.jpg;*.bmp|resources files (*.rc)|*.rc"),wxOPEN);
            if (!nomfichier.empty())
           {
            mlTextCtrl->LoadFile(nomfichier);
            TextChg = false;
           } 
    	}
     
     void MyFrame::Onrotation(wxCommandEvent& WXUNUSED(event))
     
     {  
     
     
    	 CImg<double> image(monfichier);
    	 image.rotate(90);
    	 image.display();
     
     }
    le probléme c'est que lors de la compilation il m'a affiche monfichier identificateur introuvable .
    je ne sais pas comment récupérer l'adresse de l'image ouverte par la fonction onouvre pour pouvoir l'utiliser avec la fonction onrotation???

  2. #2
    Membre averti 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
    Points : 354
    Points
    354
    Par défaut
    Salut.

    Il est tout à fait normal que tu obtiennes ce message d'erreur à la compilation : la variable "nomfichier" est déclarée dans la méthode "Onouvre", et n'est donc pas visible depuis les autres méthodes.

    De plus, il y a un autre problème avec ton code.
    Dans la méthode "Onouvre", tu demandes à l'utilisateur de sélectionner un fichier image, et tu charges cette image dans un wxTextCtrl.

    Cela revient à charger une image depuis le bloc-notes : fait l'essai pour voir.

    @+
    Xav'

  3. #3
    Membre du Club
    Inscrit en
    Juin 2010
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 151
    Points : 43
    Points
    43
    Par défaut
    J'ai ajouté la déclaration de mon fichier et sa compile maintenant mais l'orsque j'appuis sur ouvrir dans la fenetre et je choisi une une image je ne peux pas l'ouvrir l'exécution s'arrete du moment que je séléctionne une image je ne comprend pas le probléme et dans visual studio apparait le fichier textctrl.h et le curseur pointe sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        // load/save the control's contents from/to a file
        bool LoadFile(const wxString& file, int fileType = wxTEXT_TYPE_ANY) { return DoLoadFile(file, fileType); }
        bool SaveFile(const wxString& file = wxEmptyString, int fileType = wxTEXT_TYPE_ANY);

Discussions similaires

  1. [DAO] Faire le lien entre les VO et les Objets Métiers
    Par mauvais_karma dans le forum Hibernate
    Réponses: 12
    Dernier message: 25/11/2005, 15h19
  2. Liens entre les tables
    Par zevince dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 25/10/2005, 15h25
  3. lien entre les tables
    Par cedric12 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 03/10/2005, 23h39
  4. Lien entre les vues 'Structure' et l'éditeur
    Par Tifauv' dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 13/05/2004, 16h06
  5. lien entre les table de paradox
    Par salim_intic1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 16h00

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