tworzenie komponentu w wxWidgets

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?

0

pokaż jak tworzysz obiekt.

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

   [...] 
}
1

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

0

Dzięki! Teraz działa.

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