"window that captured the mouse didn't process wxEVT_MOUSE_CAPTURE_LOST" assertion

Bryan Petty bryan at ibaku.net
Mon Feb 12 11:43:03 PST 2007


Volker Bartheld wrote:
> Problem is, that there's no usage of wxWindow::CaptureMouse() in my code
> - so it might be only implicitly.

wxWidgets sometimes makes use of CaptureMouse internally, but if it were 
to capture the event, you may implement some other mouse capture code on 
top of the same window and fail to handle the situation. So wxWidgets 
requires you catch the event even if it uses CaptureMouse() itself.

Usually your call stack will lead to the window in question that is the 
source of the mouse capture, try looking at the "win" parameter to the 
call to DoNotifyWindowAboutCaptureLost().

If you have any windows that make use of scrollbars, they likely derive 
from wxScrolledWindow, which in turn makes use of some built-in timed 
auto-scrolling when the user clicks inside the window, and drags beyond 
any border of the window. That functionality makes use of 
CaptureMouse(), and you will need to catch the event yourself for those 
cases as well (though you don't need to do anything beyond catching the 
event).

Regards,
Bryan Petty




More information about the wx-users mailing list