//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //事件触发机制。鼠标或键盘交互触发事件。这里触发PrintEvent()函数事件 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ public void HookEvents() { vtkRenderWindowInteractor Interactor = renderWindowControl1.RenderWindow.GetInteractor(); this.HookErrorWindowEvents(); Interactor = this.renderWindowControl1.RenderWindow.GetInteractor(); this.InteractorHandler = new Kitware.VTK.vtkObject.vtkObjectEventHandler(Interactor_AnyEventHandler); Interactor.AnyEvt += this.InteractorHandler; // this.Interactor.PickEvt+=new Kitware.VTK.vtkObject.vtkObjectEventHandler(Interactor_AnyEventHandler); // Give our own style a higher priority than the built-in one // so that we see the events first: // float builtInPriority = Interactor.GetInteractorStyle().GetPriority(); this.UserStyle = Kitware.VTK.vtkInteractorStyleUser.New(); this.UserStyle.SetPriority(0.5f); this.UserStyle.SetInteractor(Interactor); this.UserHandler = new Kitware.VTK.vtkObject.vtkObjectEventHandler(UserStyle_MultipleEventHandler); // Keyboard events: this.UserStyle.KeyPressEvt += this.UserHandler; this.UserStyle.CharEvt += this.UserHandler; this.UserStyle.KeyReleaseEvt += this.UserHandler; }
public void UnhookEvents() { vtkRenderWindowInteractor Interactor = renderWindowControl1.RenderWindow.GetInteractor(); this.UserStyle.KeyPressEvt -= this.UserHandler; this.UserStyle.CharEvt -= this.UserHandler; this.UserStyle.KeyReleaseEvt -= this.UserHandler; Interactor.AnyEvt -= this.InteractorHandler; this.UserHandler = null; this.UserStyle = null; this.InteractorHandler = null; Interactor = null; }