挂钩用C ++ / CLI事件清空C ++实现

时间:2016-07-07 19:14:56

标签: c++-cli vtk

我正在使用一个开源工具包(VTK),它有一个对象,其方法是通过按任意键触发的。我的想法是覆盖你自己的类中的实现,但我无法弄清楚如何在C ++ / CLI中实现它。

这就是我所拥有的,但我无法弄清楚如何将它挂钩到一个物体。

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);

这返回一个函数是左操作数的错误,这是有意义的,但是我无法弄清楚它是如何与事件挂钩的。

1 个答案:

答案 0 :(得分:0)

对于非静态方法,您需要指定委托应指向的对象。

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

(如果这不能解决问题,那么我不明白你遇到了什么问题。如果你收到错误信息,请不要描述错误,复制和粘贴完全错误信息是什么。)