我正在使用一个开源工具包(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);
这返回一个函数是左操作数的错误,这是有意义的,但是我无法弄清楚它是如何与事件挂钩的。
答案 0 :(得分:0)
对于非静态方法,您需要指定委托应指向的对象。
vtkObject->OnKeyPress += gcnew myEventHandler(this, &MyClass::Pick);
// ^^^^
(如果这不能解决问题,那么我不明白你遇到了什么问题。如果你收到错误信息,请不要描述错误,复制和粘贴完全错误信息是什么。)