Jak w prosty sposób można rozszerzyć standardowe menu kontekstowe w standardowym wxTextCtrl.
Chciałem przebudować menu kontekstowe dla własnych kontrolek dziczących po klasie wxTextCtrl
Metoda obsługi zdarzenia dla menu kontekstowego OnContextMenu nie jest wirtualna, więc postanowiłem ją nadpisać, no i niby git, ale...
nie jestem przekonany, że jest to dobry pomysł - choć na razie nie widzę innego sposobu.
Czy koś zna może inną metodę?
w pozycji '********* ' chciałem wstawić menu kontekstowe,
if (!m_ContextMenu)
{
m_ContextMenu = new wxMenu;
m_ContextMenu->Append(wxID_UNDO, _("&Undo"));
m_ContextMenu->Append(wxID_REDO, _("&Redo"));
m_ContextMenu->AppendSeparator();
m_ContextMenu->Append(wxID_CUT, _("Cu&t"));
m_ContextMenu->Append(wxID_COPY, _("&Copy"));
m_ContextMenu->Append(wxID_PASTE, _("&Paste"));
m_ContextMenu->Append(wxID_CLEAR, _("&Delete"));
}
PopupMenu(m_ContextMenu);
return;
ale o dziwo powyższa fraza nie jest w ogóle wywoływana, program nie wchodzi w if-a - pomimo, że w konstruktorze, "null"uję zmienną -
m_ContextMenu=NULL;
.
//class MywxTextCtrl: public wxTextCtrl {
//public:
// MywxTextCtrl(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 )
// {
// };
//public:
// inline void OnContextMenu(wxContextMenuEvent& event) {
// //this->wxTextCtrl::OnContextMenu(event);
//*******// własna obsługa menu kontekstowego
// wxMessageBox(wxT("test"));
// };
//};