#include "wx/statbmp.h"
#endif
+#include "wx/sysopt.h"
+
#include <stdio.h>
// ---------------------------------------------------------------------------
wxSize wxStaticBitmap::DoGetBestSize() const
{
if ( ImageIsOk() )
- return wxSize(m_image->GetWidth(), m_image->GetHeight());
+ {
+ wxSize best(m_image->GetWidth(), m_image->GetHeight());
+ CacheBestSize(best);
+ return best;
+ }
// this is completely arbitrary
return wxSize(16, 16);
::InvalidateRect(GetHwndOf(GetParent()), &rect, TRUE);
}
+WXLRESULT wxStaticBitmap::MSWWindowProc(WXUINT nMsg,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+#ifndef __WXWINCE__
+ static int s_useHTClient = -1;
+ if (s_useHTClient == -1)
+ s_useHTClient = wxSystemOptions::GetOptionInt(wxT("msw.staticbitmap.htclient"));
+ if (s_useHTClient == 1)
+ {
+ // Ensure that static items get messages. Some controls don't like this
+ // message to be intercepted (e.g. RichEdit), hence the tests.
+ // Also, this code breaks some other processing such as enter/leave tracking
+ // so it's off by default.
+
+ if ( nMsg == WM_NCHITTEST )
+ return (long)HTCLIENT;
+ }
+#endif
+
+ return wxWindow::MSWWindowProc(nMsg, wParam, lParam);
+}
+
#endif // wxUSE_STATBMP
+