diff --git a/include/wx/msw/bmpcbox.h b/include/wx/msw/bmpcbox.h index 0942202095..1812a9f204 100644 --- a/include/wx/msw/bmpcbox.h +++ b/include/wx/msw/bmpcbox.h @@ -120,6 +120,7 @@ protected: virtual void DoDeleteOneItem(unsigned int n); virtual bool OnAddBitmap(const wxBitmap& bitmap); + virtual wxSize DoGetBestSize() const; void RecreateControl(); private: diff --git a/src/msw/bmpcbox.cpp b/src/msw/bmpcbox.cpp index 6ae9044a2d..852fb0485a 100644 --- a/src/msw/bmpcbox.cpp +++ b/src/msw/bmpcbox.cpp @@ -183,6 +183,20 @@ wxBitmapComboBox::~wxBitmapComboBox() Clear(); } +wxSize wxBitmapComboBox::DoGetBestSize() const +{ + wxSize best = wxComboBox::DoGetBestSize(); + wxSize bitmapSize = GetBitmapSize(); + + wxCoord useHeightBitmap = EDIT_HEIGHT_FROM_CHAR_HEIGHT(bitmapSize.y); + if ( best.y < useHeightBitmap ) + { + best.y = useHeightBitmap; + CacheBestSize(best); + } + return best; +} + // ---------------------------------------------------------------------------- // Item manipulation // ----------------------------------------------------------------------------