2016-07-07 54 views
0

我正在使用一個開源工具包(VTK),該工具包有一個對象,並且有一個按下任意鍵的方法。這個想法是在你自己的類中覆蓋實現,但我不知道如何在C++/CLI中完成它。用C++/CLI事件連接到空的C++實現

這是我有,但我不知道如何將其掛鉤到一個對象。

delegate void myEventHandler(vtkObject * sender, EventArgs^e); 
event myEventHandler^ LeftButtonPressEvt; 

LeftButtonPressEvt += gcnew myEventHandler(&MyClass::MyModifiedOnKeyPress); 

void MyModifiedOnKeyPress(vtkObject * sender, EventArgs^e) 
{ 
    //this should be called whenever the button is pressed 
} 

它鉤住vtk的對象會是這個樣子:

vtkObject->OnKeyPress += gcnew myEventHandler(&MyClass::Pick); 

這將返回錯誤的函數是左操作數這是有道理的,但我不能弄清楚如何,這將是迷上了事件。

回答

0

對於非靜態方法,您需要指定委託應該指向哪個對象。

vtkObject->OnKeyPress += gcnew myEventHandler(this, &MyClass::Pick); 
//           ^^^^ 

(如果不解決這個問題,那麼我不明白你有什麼問題。如果您收到一條錯誤信息,不描述錯誤,複製&粘貼正好錯誤信息是什麼。)

+0

可悲的是沒有錯誤信息,使得這很難描述。 – DumbQuesionGuy314

+0

也許你可以更詳細地描述發生了什麼事情。你想做什麼,你的預期結果是什麼,你的實際結果是什麼? –