[vtkusers] wxVTKWindow and mouse events
    Brad Arthur 
    mailinglist at evscorp.com
       
    Tue Sep 24 10:31:34 EDT 2013
    
    
  
Hello,
I am writing a volume viewer using VTK and wxWindows.  I'm using Brian
Todd's wxVTKWindow class to render into a wxWindow.  My code works good
under Linux, but under Win98 and WinNT my mouse event is not being called.
Does anyone know why the code below would not work on Win98/NT?  Placing the
mouse event handler in the EVSFrame, and wxVTKWindow classes (instead of
EVSResliceCanvas) does not work.  Am I taking the wrong approach in creating
a wxFrame and attaching the wxVTKWindow to it?
Could someone please send me some sample code which implements wxVTKWindow,
and which works under Win98/NT?
Thank you!!
Brad
// Container for the wxVTKWindow
class EVSFrame: public wxFrame
{
public:
 EVSFrame(wxWindow *window, const wxString& title, const wxPoint& pos,
  const wxSize& size, long lStyle);
 void OnCloseWindow(wxCloseEvent& event);
 void OnExit(wxCommandEvent& event);
 DECLARE_EVENT_TABLE()
};
// Class to handle mouse events, etc.
class EVSResliceCanvas: public wxVTKWindow
{
public:
 EVSResliceCanvas(wxFrame *wfFrame);
 void OnPaint(wxPaintEvent& event);
 void OnMouseEvent(wxMouseEvent& event);
 DECLARE_EVENT_TABLE()
};
EVSResliceCanvas::EVSResliceCanvas(wxFrame *wfFrame):
 wxVTKWindow(wfFrame, -1)
{
}
wxApp::OnInit()
{
  :
 VTK initialization
  :
 // Create the main frame window
 this->evsFrame = new EVSFrame(NULL, sTitle, wpPosition, wsSize, lStyle);
 // Allow rendering into the frame
 this->evsResliceCanvas = new EVSResliceCanvas(this->evsFrame);
 this->evsResliceCanvas->SetVTKWindow(this->renderWindow);
 // Show the frame
 this->evsFrame->Show(true);
}
    
    
More information about the vtkusers
mailing list