tworzenie komponentu w wxWidgets

Odpowiedz Nowy wątek
2011-08-15 19:45
rekrut
0

Stworzyłem szkielet komponentu będącego modyfikacją wxTextCtrl. Przy jego tworzeniu kompilator zwraca bląd:

error: no matching function for call to 'MyTextCtrl::MyTextCtrl(wxAppFrame* const, const long int&, const wchar_t [1])'|

Przy wywołaniu konstruktora klasy wxTextCtrl z takimi samymi argumentami program kompiluje się bez błędnie. Szkielet mojej klasy:

MyTextCtrl.h

#ifndef MYTEXTCTRL_H
#define MYTEXTCTRL_H
 
#include <wx/textctrl.h>
 
class MyTextCtrl: public wxTextCtrl
{
    public:
        MyTextCtrl(wxWindow* parent,
                       wxWindowID id,
                       const wxString& value,
                       const wxPoint& pos,
                       const wxSize& size,
                       long style,
                       const wxValidator& validator,
                       const wxString& name );
        virtual ~MyTextCtrl();
        void OnChar(wxKeyEvent &);
};
 
#endif // MYTEXTCTRL_H

MyTextCtrl.cpp

#include "MyTextCtrl.h"
 
MyTextCtrl::MyTextCtrl(wxWindow *parent, wxWindowID id,
               const wxString& value = wxEmptyString,
               const wxPoint& pos = wxDefaultPosition,
               const wxSize& size = wxDefaultSize,
               long style = 0,
               const wxValidator& validator = wxDefaultValidator,
               const wxString& name = wxTextCtrlNameStr):
 
               wxTextCtrl(parent, id, value, pos, size, style, validator, name)
{
}
 
MyTextCtrl::~MyTextCtrl(){}
 
void MyTextCtrl::OnChar(wxKeyEvent & event){}

Dlaczego przy wywołaniu konstruktora mojej klasy jest błąd?

Pozostało 580 znaków

2011-08-15 20:19
0

pokaż jak tworzysz obiekt.

Pozostało 580 znaków

2011-08-15 21:54
rekrut
0
wxAppFrame::wxAppFrame(wxWindow* parent,wxWindowID id)
{
   [...]
 
    //wxTextCtrl * wordInputPL = new wxTextCtrl(this, idWordInputPL, _T("")); // działa
    MyTextCtrl * wordInputPL = new MyTextCtrl(this, idWordInputPL, _T("")); // nie działa
 
   [...] 
}

Pozostało 580 znaków

2011-08-16 09:51
1

Przenieś domyślne wartości parametrów do deklaracji konstruktora.

Pozostało 580 znaków

2011-08-16 11:45
rekrut
0

Dzięki! Teraz działa.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0