EVT_PAINT handler raising excption, gets called repeatedly

Christian K ckkart at hoc.net
Tue Jul 3 18:09:09 PDT 2007


Charl P. Botha wrote:
> On 7/3/07, Robin Dunn <robin at alldunn.com> wrote:
>> On Windows a EVT_PAINT handler *must* create a wx.PaintDC (or use
>> something that creates a wx.PaintDC like a wx.BufferedPaintDC) otherwise
>> the system thinks that the event hasn't been handled yet and will send
>> another paint message immediately.  So that is probably happening is
>> your exception is being raised before the wx.PaintDC is being created
>> and so it is skipped and windows thinks is needs to paint again.
> 
> Thanks Robin and Christopher, this is the kind of information I was after!
> 
> I'm working on the wxVTKRenderWindowInteractor in VTK CVS to make it
> safe for Python exceptions.  I've been testing a VTK patch I made (and
> will probably commit soon) to turn VTK errors into Python exceptions
> (this is not the case currently), and have been making certain other
> parts of the code aware of this new behaviour.  So a Render() called
> from the OnPaint() handler was raising an exception (due to no input)
> and then there'd be repeated calls of the OnPaint handler.  The
> PaintDC was created before the Render() call, so I'm not sure what
> exactly caused this behaviour.  After having added an event.Skip()
> before the Render(), I'm not seeing the repeated callbacks anymore.

I obviously hav not understood what you were talking about :) Sorry.

Christian





More information about the wxpython-users mailing list