diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp index 570c673c49..38a27a4092 100644 --- a/src/msw/bitmap.cpp +++ b/src/msw/bitmap.cpp @@ -264,23 +264,25 @@ wxGDIRefData *wxBitmap::CloneGDIRefData(const wxGDIRefData *dataOrig) const // course (except in !wxUSE_WXDIB), but is completely illogical wxBitmap *self = wx_const_cast(wxBitmap *, this); + wxBitmapRefData *selfdata; #if wxUSE_WXDIB // copy the other bitmap if ( data->m_hBitmap ) { wxDIB dib((HBITMAP)(data->m_hBitmap)); self->CopyFromDIB(dib); + + selfdata = wx_static_cast(wxBitmapRefData *, m_refData); + selfdata->m_hasAlpha = data->m_hasAlpha; } else #endif // wxUSE_WXDIB { // copy the bitmap data - self->m_refData = new wxBitmapRefData(*data); + selfdata = new wxBitmapRefData(*data); + self->m_refData = selfdata; } - wxBitmapRefData * const - selfdata = wx_static_cast(wxBitmapRefData *, m_refData); - // copy also the mask wxMask * const maskSrc = data->GetMask(); if ( maskSrc )