2013-08-27 2 views
0

Visual Studio 2008 C++ Windows Xp SP3Как вызвать метод обработчика события непосредственно в WxWidgets без события

Я создал форму WxWidgets (используя wxFormBuilder) и имеют кнопки/меню/Панели инструментов все генерирующие события для вызова различных методов (все это отлично работает). Каждый из этих методов событий определяется следующим образом:

void cLoggingFrame::me_InsertCommentText(wxCommandEvent& event); 

Теперь, что я хочу, чтобы быть в состоянии сделать это «повторное использование» некоторые из этих методов, называя их непосредственно. Я не хочу генерировать событие для обработки, я хочу, чтобы метод запускался, когда я его вызываю. Например, я хочу сделать что-то вроде этого (это не работает)

me_InsertCommentText(NULL); 

Теперь я понимаю, что я мог бы каждый метод события просто вызвать другой метод (без параметров), которые могут вызываться из других мест , но на других языках мне удалось обойти требование параметра с помощью NULL.

Есть ли способ сделать это с помощью wxWidgets без дополнительного метода?

ответ

0

методы передаются Event-Обработчики только обычная C++ методы, вы должны пройти верные использовать параметры что-то вроде этого будет делать трюк

me_InsertCommentText(wxCommandEvent()); 
+0

Как заметил [этот вопрос] (http://stackoverflow.com/questions/36995321/calling-event-handler-directly), это не так, как вы не может передать временный объект как неконстантную ссылку, только MSVC будет компилировать его как нестандартное расширение и даже даст предупреждение об этом. –

0

просто использовать переменное событие, уже созданный WxWidgets. Командная строка должна выглядеть так:

me_InsertCommentText(event);

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