Из-за комментариев я добавил следующий код
(в базовой панели)
Connect(CTRL_ONE, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_TWO,wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_THREE, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_FOUR, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
Connect(CTRL_FIVE, wxEVT_KILL_FOCUS, (wxObjectEventFunction)&BasicPanel::OnKillFocus);
(перечисления)
CTRL_NAME = wxID_HIGHEST + 5, // 6004
CTRL_ADDRESS = wxID_HIGHEST + 6, // 6005
CTRL_PHONENUMBER = wxID_HIGHEST + 7, // 6006
CTRL_SS = wxID_HIGHEST + 8, // 6007
CTRL_EMPNUMBER = wxID_HIGHEST + 9 // 6008
(Функция OnKillFocus — объявление включено, как было предложено)
void BasicPanel::OnKillFocus(wxFocusEvent& event) {
switch (event.GetId()) {
case 6004:
...
break;
... ... ...
}
Все это, добавленное в код, ничего не делает, когда пользователь переключает фокус на используемое текстовое поле...
Q1: Я использую wxWidgets (C++) и столкнулся с проблемой, что не могу найти никакой помощи. Я создал несколько блоков wxTextCtrl
и хотел бы, чтобы программа обновляла в них простые вычисления, когда пользователь «убивает фокус». Я не смог найти никакой документации по этому вопросу на веб-странице wxWidgets, и поиск в Google показал только wxPython. Я нашел два события: EVT_COMMAND_KILL_FOCUS - EVT_KILL_FOCUS
ни для одного из которых я не смог найти ни одного фрагмента. Может ли кто-нибудь дать мне короткий пример или привести меня на страницу, которая была бы полезна?
wxTextCtrl
boxes? In the case that i have to create a different event: How would i get each event to differentiate from each other? I know i will have to create new wxID's for each of the wxTextCtrl
boxes but how do I get the correct one to be triggered?
class BasicPanel : public wxPanel { ...
wxTextCtrl* one;
wxTextCtrl* two;
wxTextCtrl* three;
wxTextCtrl* four; ... }