Fix crash in wxStaticBox::HandleEraseBkgnd() in wxMSW on closing.

Don't process WM_ERASEBKGND if we're being destroyed. This is at best useful
and at worst harmful as we currently crash in wxStaticBox::GetClientSize() if
there is no valid TLW parent.

Closes #14355.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-06-12 21:56:58 +00:00
parent 3dd3049516
commit a15781955d

View File

@@ -4843,6 +4843,16 @@ void wxWindowMSW::OnPaint(wxPaintEvent& event)
bool wxWindowMSW::HandleEraseBkgnd(WXHDC hdc)
{
if ( IsBeingDeleted() )
{
// We can get WM_ERASEBKGND after starting the destruction of our top
// level parent. Handling it in this case is unnecessary and can be
// actually harmful as e.g. wxStaticBox::GetClientSize() doesn't work
// without a valid TLW parent (because it uses dialog units internally
// which use the dialog font), so just don't do anything then.
return false;
}
switch ( GetBackgroundStyle() )
{
case wxBG_STYLE_ERASE: