// implementation only from now on
// -------------------------------
+ // implement base class virtuals
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
protected:
virtual wxBorder GetDefaultBorder() const;
virtual wxSize DoGetBestSize() const;
long style = 0,
const wxString& name = wxStaticBoxNameStr);
+ /// Implementation
+ virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+
protected:
virtual wxSize DoGetBestSize() const;
::InvalidateRect(GetHwndOf(GetParent()), &rect, TRUE);
}
+// We need this for e.g. dialog editors. Please do not remove.
+WXLRESULT wxStaticBitmap::MSWWindowProc(WXUINT nMsg,
+ WXWPARAM wParam,
+ WXLPARAM lParam)
+{
+#ifndef __WXWINCE__
+ // Ensure that static items get messages. Some controls don't like this
+ // message to be intercepted (e.g. RichEdit), hence the tests.
+ if ( nMsg == WM_NCHITTEST )
+ return (long)HTCLIENT;
+#endif
+
+ return wxWindow::MSWWindowProc(nMsg, wParam, lParam);
+}
+
#endif // wxUSE_STATBMP
+
return wxSize(wBox, hBox);
}
+// Required for implementing dialog editors, please do not remove
+WXLRESULT wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
+{
+ switch ( nMsg )
+ {
+#ifndef __WXWINCE__
+ case WM_NCHITTEST:
+ {
+ int xPos = LOWORD(lParam); // horizontal position of cursor
+ int yPos = HIWORD(lParam); // vertical position of cursor
+
+ ScreenToClient(&xPos, &yPos);
+
+ // Make sure you can drag by the top of the groupbox, but let
+ // other (enclosed) controls get mouse events also
+ if ( yPos < 10 )
+ return (long)HTCLIENT;
+ }
+ break;
+#endif
+ }
+
+ return wxControl::MSWWindowProc(nMsg, wParam, lParam);
+}
+
#endif // wxUSE_STATBOX
+