Re: Another wx behavior question

Поиск
Список
Период
Сортировка
От Andreas Pflug
Тема Re: Another wx behavior question
Дата
Msg-id 3FD502D3.4070003@pse-consulting.de
обсуждение исходный текст
Ответ на Another wx behavior question  (John McCawley <jmccawley@worleyco.com>)
Список pgadmin-hackers
John McCawley wrote:

> 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



В списке pgadmin-hackers по дате отправления:

Предыдущее
От: John McCawley
Дата:
Сообщение: Another wx behavior question
Следующее
От: Jean-Michel POURE
Дата:
Сообщение: Re: pgAdmin3 tl_PH translation (Partial)