Membres inscrits :668
Membres en ligne : 0
Invités en ligne : 7


|
| Conversation (Résolue) : ISO C++ forbids declaration of 'OptionFrame' with no type |
shallows (Membre)
Inscrit le : 05-04-2011
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour, j'ai une erreur de compilation sur ma fenetre et je ne m'en sors pas, "ISO C++ forbids declaration of 'OptionFrame' with no type". L'erreur est dans le .h de OptinFrame. est ce que quelqu'un aurait une idée ? voici mon code: OptionFrame.cpp
Code Cpp:#include "wx_pch.h" #include "OptionFrame.h" #include <wx/msgdlg.h> #include <wx/settings.h> #include <wx/font.h> #include <wx/intl.h> #include <wx/string.h> const long OptionFrameFrame::ID_STATICTEXT1 = wxNewId(); const long OptionFrameFrame::ID_TEXTCTRL1 = wxNewId(); /* je vous epargne les déclarations*/ const long OptionFrameFrame::idMenuQuit = wxNewId(); const long OptionFrameFrame::idMenuAbout = wxNewId(); const long OptionFrameFrame::ID_STATUSBAR1 = wxNewId(); BEGIN_EVENT_TABLE(OptionFrame, wxFrame) END_EVENT_TABLE() OptionFrame::OptionFrame(const wxString& title, const wxPoint& pos, const wxSize& size): wxFrame((wxFrame *)NULL, -1, title, pos, size) { wxMenuItem* MenuItem2; wxMenuItem* MenuItem1; wxMenu* Menu1; wxButton* Button2; wxGridSizer* GridSizer1; wxGridSizer* GridSizer3; wxMenuBar* MenuBar1; wxMenu* Menu2; wxGridSizer* GridSizer2; wxStdDialogButtonSizer* StdDialogButtonSizer1; Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY")); SetForegroundColour(wxColour(0,0,0)); SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_ACTIVEBORDER)); wxFont thisFont(10,wxSWISS,wxFONTSTYLE_NORMAL,wxNORMAL,false,wxEmptyString,wxFONTENCODING_DEFAULT); SetFont(thisFont); GridSizer1 = new wxGridSizer(6, 2, 0, 0); /* je vous épargne les déclarations à rallonge */ Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&OptionFrameFrame::OnButton1Click1); Connect(ID_RADIOBUTTON1,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnradioPeriodiqueSelect); Connect(ID_CHOICE1,wxEVT_COMMAND_CHOICE_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnChoice1Select); Connect(ID_RADIOBUTTON2,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnRadioHeureFSelect); Connect(ID_RADIOBUTTON3,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnRadioMinuteFSelect); Connect(ID_RADIOBUTTON4,wxEVT_COMMAND_RADIOBUTTON_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnRadioAucuneSelect); Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnQuit); Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&OptionFrameFrame::OnAbout); }
et le OptionFrame.h
Code Cpp:#ifndef OPTIONFRAME_H #define OPTIONFRAME_H #include <wx/sizer.h> #include <wx/stattext.h> #include <wx/menu.h> #include <wx/textctrl.h> #include <wx/radiobut.h> #include <wx/choice.h> #include <wx/button.h> #include <wx/frame.h> #include <wx/statusbr.h> class OptionFrameFrame: public wxFrame { public: OptionFrame(const wxString& title, const wxPoint& pos, const wxSize& size); virtual ~OptionFrameFrame(); private: /*idem*/ DECLARE_EVENT_TABLE() }; #endif cette fenetre est une fenetre fille qui est appelée à un click sur la fenetre mere. transfertMain.cpp
Code Cpp:void TransfertFrame::OnButton2Click(wxCommandEvent& event) { OptionFrame *frame2; *frame2 = new OptionFrame(_T("Downloads"), wxPoint(0,0), wxSize(450,999) );//execution de la fenetre d'option frame2->Show(TRUE); }
Merci d'avance. Shallows
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut.
Regardes bien le nom de ta classe : il y a comme une petite erreur 
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
shallows (Membre)
Inscrit le : 05-04-2011
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
oups ... merci ^^
j'ai un nouveau soucis du coup , avec ma fenetre secondaire. j'ai corrigé le nom de ma classe mais maintenant j'ai un soucis avec la variable "parent" qui n'est pas déclarée. elle apparait dans OptionFrame.cpp:
Code wxWidgets:Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY")); j'ai essayé de l'ajouté partout(dans le constructeur et les classes qui l'appelle) mais il disent qu'elle n'est pas initialisée. Et quand je la supprimme, le create est pas content...
Merci de m'aider (encore une fois^^") Shallows
| |
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne |
Salut.
Il faut que tu ajoutes le paramètre wxWindow* parent au constructeur de ta frame afin de pouvoir le passer au constructeur de la classe de base (wxFrame).
De plus, il y a une erreur dans ton code : tu appelles la méthode Create alors que tu as déjà appelé le constructeur de wxFrame : c'est soit l'un, soit l'autre, mais pas les deux, car la méthode Create est déjà appelée par le constructeur de wxFrame.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà...
|
shallows (Membre)
Inscrit le : 05-04-2011
Messages: 47
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour, j'avais modifié mon code en ajoutant wxWindow* parentà mon constructeur mais je ne sais pas l'initialiser avec la frame principale(pour le moment il est à NULL). Pourrais tu m'expliquer la différence entre une fenetre qui aura été initialisé avec la fenetre principale et deux fenetres initialisé à NULL ?
Merci d'avance.
Shallows ---------- Bonsoir j'ai finalement trouvé l'option qui me permettait de créer un fenetre secondaire, je me sers des objet graphique wxSmith donc j'ai "ajouté un wxDialog" à mon prjet courant.
Merci pour votre aide.
Shallows
Dernière modification par shallows (20-04-2011 17:11:30)
| |
|
|