]> git.saurik.com Git - wxWidgets.git/commitdiff
Check for range on wxSpinCtrl and wxSpinButton's GetValue()
authorRobert Roebling <robert@roebling.de>
Tue, 28 Dec 2004 15:57:43 +0000 (15:57 +0000)
committerRobert Roebling <robert@roebling.de>
Tue, 28 Dec 2004 15:57:43 +0000 (15:57 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31165 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/spinbutt.cpp
src/msw/spinctrl.cpp

index 81857170d47fddb0c1cace77c9e246a59b0d7fa7..6e1ae0e4e5753d5da123e6a43585f59b6100a65e 100644 (file)
@@ -220,16 +220,22 @@ wxSize wxSpinButton::DoGetBestSize() const
 
 int wxSpinButton::GetValue() const
 {
+    int n;
 #ifdef UDM_GETPOS32
     if ( wxTheApp->GetComCtl32Version() >= 580 )
     {
         // use the full 32 bit range if available
-        return ::SendMessage(GetHwnd(), UDM_GETPOS32, 0, 0);
+        n = ::SendMessage(GetHwnd(), UDM_GETPOS32, 0, 0);
     }
 #endif // UDM_GETPOS32
 
     // we're limited to 16 bit
-    return (short)LOWORD(::SendMessage(GetHwnd(), UDM_GETPOS, 0, 0));
+    n = (short)LOWORD(::SendMessage(GetHwnd(), UDM_GETPOS, 0, 0));
+    
+    if (n < m_min) n = m_min;
+    if (n > m_max) n = m_max;
+    
+    return n;
 }
 
 void wxSpinButton::SetValue(int val)
index a88446e8c6c7a61bee0a44cbd633f6a35826a0c9..283d9fe0e356d28e4072205a44ae48d3144813a9 100644 (file)
@@ -436,6 +436,9 @@ int wxSpinCtrl::GetValue() const
     long n;
     if ( (wxSscanf(val, wxT("%lu"), &n) != 1) )
         n = INT_MIN;
+        
+    if (n < m_min) n = m_min;
+    if (n > m_max) n = m_max;
 
     return n;
 }