]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/spinbutt.cpp
fixes bug 414369
[wxWidgets.git] / src / msw / spinbutt.cpp
index 6cc04c468f36ebb897f66a8db02107df6f9048cf..03428c16ee3a8ada3d7a41904846304c5e81e7c6 100644 (file)
@@ -19,6 +19,7 @@
 
 #ifdef __GNUG__
     #pragma implementation "spinbutt.h"
 
 #ifdef __GNUG__
     #pragma implementation "spinbutt.h"
+    #pragma implementation "spinbutbase.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
 
 #if wxUSE_SPINBTN
 
 
 #if wxUSE_SPINBTN
 
+#include "wx/spinbutt.h"
+
+IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxNotifyEvent)
+
 #if defined(__WIN95__) && !defined(__TWIN32__)
 
 #if defined(__WIN95__) && !defined(__TWIN32__)
 
-#include "wx/spinbutt.h"
 #include "wx/msw/private.h"
 
 #include "wx/msw/private.h"
 
-#if !defined(__GNUWIN32__) || defined(__TWIN32__) || defined(wxUSE_NORLANDER_HEADERS)
+#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) || defined(__TWIN32__))
     #include <commctrl.h>
 #endif
 
     #include <commctrl.h>
 #endif
 
 // wxWin macros
 // ----------------------------------------------------------------------------
 
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-#if !USE_SHARED_LIBRARY
-    IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
-    IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent);
-#endif
+IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl)
 
 // ----------------------------------------------------------------------------
 // wxSpinButton
 
 // ----------------------------------------------------------------------------
 // wxSpinButton
@@ -105,8 +106,9 @@ bool wxSpinButton::Create(wxWindow *parent,
         y = 0;
 
     // translate the styles
         y = 0;
 
     // translate the styles
-    DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP |
-                   UDS_SETBUDDYINT; // it doesn't harm if we don't have buddy
+    DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP | /*  WS_CLIPSIBLINGS | */
+                   UDS_NOTHOUSANDS | // never useful, sometimes harmful
+                   UDS_SETBUDDYINT;  // it doesn't harm if we don't have buddy
 
     if ( m_windowStyle & wxSP_HORIZONTAL )
         wstyle |= UDS_HORZ;
 
     if ( m_windowStyle & wxSP_HORIZONTAL )
         wstyle |= UDS_HORZ;
@@ -130,7 +132,7 @@ bool wxSpinButton::Create(wxWindow *parent,
 
     if ( !m_hWnd )
     {
 
     if ( !m_hWnd )
     {
-        wxLogLastError("CreateUpDownControl");
+        wxLogLastError(wxT("CreateUpDownControl"));
 
         return FALSE;
     }
 
         return FALSE;
     }
@@ -219,6 +221,9 @@ bool wxSpinButton::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
     LPNMUPDOWN lpnmud = (LPNMUPDOWN)lParam;
 #endif
 
     LPNMUPDOWN lpnmud = (LPNMUPDOWN)lParam;
 #endif
 
+    if (lpnmud->hdr.hwndFrom != GetHwnd()) // make sure it is the right control
+        return FALSE;
+
     wxSpinEvent event(lpnmud->iDelta > 0 ? wxEVT_SCROLL_LINEUP
                                          : wxEVT_SCROLL_LINEDOWN,
                       m_windowId);
     wxSpinEvent event(lpnmud->iDelta > 0 ? wxEVT_SCROLL_LINEUP
                                          : wxEVT_SCROLL_LINEDOWN,
                       m_windowId);