diff --git a/include/wx/msw/statbmp.h b/include/wx/msw/statbmp.h index 39f6202e3c..7989fce4bc 100644 --- a/include/wx/msw/statbmp.h +++ b/include/wx/msw/statbmp.h @@ -70,9 +70,11 @@ protected: void SetImage(const wxGDIImage* image); void SetImageNoCopy( wxGDIImage* image ); +#ifndef __WXWINCE__ // draw the bitmap ourselves here if the OS can't do it correctly (if it // can we leave it to it) void DoPaintManually(wxPaintEvent& event); +#endif // !__WXWINCE__ // we can have either an icon or a bitmap diff --git a/src/msw/statbmp.cpp b/src/msw/statbmp.cpp index 17d3ea364e..418541bfd9 100644 --- a/src/msw/statbmp.cpp +++ b/src/msw/statbmp.cpp @@ -170,6 +170,10 @@ bool wxStaticBitmap::Create(wxWindow *parent, // GetBestSize will work properly now, so set the best size if needed SetInitialSize(size); + // painting manually is reported not to work under Windows CE (see #10093), + // so don't do it there even if this probably means that alpha is not + // supported there -- but at least bitmaps without alpha appear correctly +#ifndef __WXWINCE__ // Windows versions before XP (and even XP if the application has no // manifest and so the old comctl32.dll is used) don't draw correctly the // images with alpha channel so we need to draw them ourselves and it's @@ -179,6 +183,7 @@ bool wxStaticBitmap::Create(wxWindow *parent, { Connect(wxEVT_PAINT, wxPaintEventHandler(wxStaticBitmap::DoPaintManually)); } +#endif // !__WXWINCE__ return true; } @@ -252,6 +257,8 @@ wxSize wxStaticBitmap::DoGetBestSize() const return wxSize(16, 16); } +#ifndef __WXWINCE__ + void wxStaticBitmap::DoPaintManually(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); @@ -274,6 +281,8 @@ void wxStaticBitmap::DoPaintManually(wxPaintEvent& WXUNUSED(event)) true /* use mask */); } +#endif // !__WXWINCE__ + void wxStaticBitmap::SetImage( const wxGDIImage* image ) { wxGDIImage* convertedImage = ConvertImage( *image );