I have done a ton of work on pgDesigner, and I'm almost ready for a 1.0 release. I decided to compile a Windows binary, but I am getting the following compile error when compiling under MSVC 6 (Note: it compiles and runs fine under Linux)
error C2440: 'type case' : cannot convert from 'void (__thiscall_CDiagramWindow::*)(void)' to 'void (__thiscall wxEvtHandler::*)(class wxCommandEvent &)'
I only get this on EVT_PAINT and EVT_MENU events, but not in all classes, just two of them. Is there something flakey regarding MSVC and event handlers? All of my handlers are pretty vanilla. The only thing I can see is that one of the classes that isn't working uses multiple inheritance. However, the other one doesn't, and it still isn't working.
Below is one of the ones that isn't working:
class CDiagramWindow : public wxScrolledWindow { public: /* stuff */ private: DECLARE_DYNAMIC_CLASS(CDiagramWindow) DECLARE_EVENT_TABLE() };
IMPLEMENT_DYNAMIC_CLASS(CDiagramWindow, wxScrolledWindow)
BEGIN_EVENT_TABLE(CDiagramWindow, wxScrolledWindow) EVT_CHAR(CDiagramWindow::OnChar) EVT_RIGHT_UP(CDiagramWindow::OnRightClick) EVT_LEFT_DOWN(CDiagramWindow::OnLeftDown) EVT_MENU(ID_NEW_TABLE, CDiagramWindow::OnNewTable) EVT_MENU(ID_SELECT_COLOR, CDiagramWindow::OnSelectColor) EVT_MENU(ID_DELETE_KEY, CDiagramWindow::OnDeleteKey) EVT_PAINT(CDiagramWindow::OnPaint) EVT_MOTION(CDiagramWindow::OnMotion) END_EVENT_TABLE()
John, you really should post stuff like this on the wx lists....
Still, I have some suggestions to you.
First: It appears to me that you're defining event handler methods that don't have an event& argument. This will lead to a major desaster if you use another compiler. This might already cover your problem as well.
Second: If registering event handlers outside the event table, you will need some casting, sometimes even multiple casts.
Regards, Andreas
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])