2013-08-27 23 views
0

Visual Studio 2008的C++的Windows XP SP3如何調用事件處理方法直接在wxWidgets中沒有一個事件

我創建了一個wxWidgets的形式(使用wxFormBuilder),並有按鈕/菜單/工具欄上所有發生的事件調用各種方法(所有這些都很完美)。這些事件每種方法的定義如下:

void cLoggingFrame::me_InsertCommentText(wxCommandEvent& event); 

現在,我希望能夠做的是「再利用」這些方法有的通過直接調用它們。我不想生成要處理的事件,我想在調用它時運行該方法。例如,我想要做這樣的事情(這不起作用)

me_InsertCommentText(NULL); 

現在,我明白,我可以有每個事件的方法只是調用另一個方法(不帶參數),可以從其他地方調用,但在其他語言中,我已經能夠繞過NULL的參數要求。

有什麼辦法可以用wxWidgets做到這一點,而不需要額外的方法嗎?

回答

0

方法傳遞給事件處理程序都只是普通的C++方法,你必須通過正確的指標的影響 這樣的事情會做的伎倆

me_InsertCommentText(wxCommandEvent()); 
+0

由於注意到了[這個問題](http://stackoverflow.com/questions/36995321/calling-event-handler-directly),這是錯誤的,你不能將臨時對象作爲非const引用傳遞,只有MSVC會將其作爲非標準擴展進行編譯,甚至會給出警告。 –

0

只使用一個已經被wxWidgets的創建事件變量。命令行應該是這樣的:

me_InsertCommentText(event);

相關問題