2009-05-19 2 views
4

Есть ли простой способ обработки, когда пользователь нажимает на wxTextCtrl? После прочтения документов wxTextCtrl я вижу, что нет события щелчка или двойного щелчка. Я понимаю, что в wxWidgets нет вопроса о событиях «щелчка» из вопроса wxWidgets: Detecting click event on custom controls, поэтому будет сделано простое событие мыши.Легкий способ получить событие click wxTextCtrl?

Пример ответа:

От: wx wiki

textCtrl->Connect(wxEVT_LEFT_DOWN, 
       wxMouseEventHandler(MyClass::OnClick), NULL, this); 

ответ

3

Вы пытались справиться с wxEVT _ ЛЕВЫЙ _ DOWN и wxEVT _ ЛЕВЫЙ _ UP событий для управления текстом? Либо добавив их в статическую карту сообщений, либо позвонив по методу обработчика Connect().

Edit:

Не все события перечислены в документации класса. Вам также нужно подняться в иерархии, от wxTextCtrl до wxControl до wxWindow. К сожалению, я не могу найти документацию для событий мыши в любом классе. С ними по-прежнему можно справиться, даже если это не задокументировано.

+0

Нет, я не вижу этого события, указанного на странице http://docs.wxwidgets.org/2.8.4/wx_wxtextctrl.html. Это событие для подключения событий мыши вообще через класс wxMouseEvent или есть ли там событие, но просто скрыто? Я использую Code :: Blocks для GUI-дизайнера и не отображает никаких событий для мыши, то есть «выбрано» или «активировано». Куда мне идти оттуда? У меня нет проблем с написанием кода без конструктора. Благодарю. –

+0

Можете ли вы показать мне пример вызова Connect()? Моя строка подключения выглядит так: Connect (IS_TEXTCTRL1, wxEVT_LEFT_DOWN, (wxObjectEventFunction) и MyClass :: OnTextMouseDown); Все компилируется просто отлично, но MyClass :: OnTextMouseDown никогда не вызывается. Спасибо за помощь. –

+0

IS_TEXTCTRL1 должен быть ID_TEXTCTRL1 –

Смежные вопросы