diff --git a/include/wx/msw/statbmp.h b/include/wx/msw/statbmp.h index 49734fd443..e778d2e373 100644 --- a/include/wx/msw/statbmp.h +++ b/include/wx/msw/statbmp.h @@ -78,6 +78,7 @@ public: protected: virtual wxBorder GetDefaultBorder() const; + virtual wxSize DoGetBestSize() const; virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; // ctor/dtor helpers diff --git a/src/msw/statbmp.cpp b/src/msw/statbmp.cpp index 14adf39e01..a584ebac96 100644 --- a/src/msw/statbmp.cpp +++ b/src/msw/statbmp.cpp @@ -167,6 +167,9 @@ bool wxStaticBitmap::Create(wxWindow *parent, // no need to delete the new image SetImageNoCopy(image); + // GetBestSize will work properly now, so set the best size if needed + SetBestSize(size); + return TRUE; } @@ -201,6 +204,15 @@ void wxStaticBitmap::Free() m_image = NULL; } +wxSize wxStaticBitmap::DoGetBestSize() const +{ + if ( ImageIsOk() ) + return wxSize(m_image->GetWidth(), m_image->GetHeight()); + + // this is completely arbitrary + return wxSize(16, 16); +} + void wxStaticBitmap::SetImage( const wxGDIImage* image ) { wxGDIImage* convertedImage = ConvertImage( *image );