comparison win/dw.c @ 110:d4c1a9ebc72f

Spinbutton behaviour cleanups.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 22 Sep 2002 13:03:39 +0000
parents 94d273843a41
children 1e406d67b178
comparison
equal deleted inserted replaced
109:94d273843a41 110:d4c1a9ebc72f
1957 break; 1957 break;
1958 case WM_VSCROLL: 1958 case WM_VSCROLL:
1959 case WM_HSCROLL: 1959 case WM_HSCROLL:
1960 _wndproc(hWnd, msg, mp1, mp2); 1960 _wndproc(hWnd, msg, mp1, mp2);
1961 break; 1961 break;
1962 case WM_KEYDOWN:
1963 case WM_KEYUP:
1964 {
1965 if(mp1 == VK_UP || mp1 == VK_DOWN)
1966 {
1967 BOOL ret;
1968
1969 if(!cinfo || !cinfo->pOldProc)
1970 ret = DefWindowProc(hWnd, msg, mp1, mp2);
1971 ret = CallWindowProc(cinfo->pOldProc, hWnd, msg, mp1, mp2);
1972
1973 /* Tell the spinner control that a keypress has
1974 * occured and to update it's internal value.
1975 */
1976 if(cinfo && cinfo->buddy && !cinfo->combo)
1977 PostMessage(hWnd, WM_USER+10, 0, 0);
1978
1979 if(msg == WM_KEYDOWN)
1980 SetTimer(hWnd, 101, 100, (TIMERPROC)NULL);
1981 else
1982 KillTimer(hWnd, 101);
1983
1984 return ret;
1985 }
1986 }
1987 break;
1988 case WM_TIMER:
1989 {
1990 if(mp1 == 101)
1991 {
1992 BOOL ret;
1993
1994 if(!cinfo || !cinfo->pOldProc)
1995 ret = DefWindowProc(hWnd, msg, mp1, mp2);
1996 ret = CallWindowProc(cinfo->pOldProc, hWnd, msg, mp1, mp2);
1997
1998 /* Tell the spinner control that a keypress has
1999 * occured and to update it's internal value.
2000 */
2001 if(cinfo && cinfo->buddy && !cinfo->combo)
2002 PostMessage(hWnd, WM_USER+10, 0, 0);
2003
2004 return ret;
2005 }
2006 }
2007 break;
1962 case WM_CHAR: 2008 case WM_CHAR:
1963 if(LOWORD(mp1) == '\t') 2009 if(LOWORD(mp1) == '\t')
1964 { 2010 {
1965 if(GetAsyncKeyState(VK_SHIFT) & 0x8000) 2011 if(GetAsyncKeyState(VK_SHIFT) & 0x8000)
1966 { 2012 {
1986 { 2032 {
1987 if(cinfo->clickdefault) 2033 if(cinfo->clickdefault)
1988 _click_default(cinfo->clickdefault); 2034 _click_default(cinfo->clickdefault);
1989 2035
1990 } 2036 }
1991
1992 /* Tell the spinner control that a keypress has
1993 * occured and to update it's internal value.
1994 */
1995 if(cinfo->buddy && !cinfo->combo)
1996 {
1997 if(IsWinNT())
1998 PostMessage(cinfo->buddy, WM_USER+10, 0, 0);
1999 else
2000 SendMessage(cinfo->buddy, WM_USER+10, 0, 0);
2001 }
2002 break; 2037 break;
2003 case WM_USER+10: 2038 case WM_USER+10:
2004 { 2039 {
2005 if(cinfo->buddy) 2040 if(cinfo->buddy)
2006 { 2041 {
2011 else 2046 else
2012 val = (long)SendMessage(cinfo->buddy, UDM_GETPOS, 0, 0); 2047 val = (long)SendMessage(cinfo->buddy, UDM_GETPOS, 0, 0);
2013 2048
2014 sprintf(tmpbuf, "%d", val); 2049 sprintf(tmpbuf, "%d", val);
2015 SetWindowText(hWnd, tmpbuf); 2050 SetWindowText(hWnd, tmpbuf);
2016 }
2017 }
2018 break;
2019 case WM_KEYUP:
2020 {
2021 if(mp1 == VK_UP || mp1 == VK_DOWN)
2022 {
2023 if(cinfo->buddy)
2024 PostMessage(hWnd, WM_USER+10, 0, 0);
2025 } 2051 }
2026 } 2052 }
2027 break; 2053 break;
2028 case WM_CTLCOLORSTATIC: 2054 case WM_CTLCOLORSTATIC:
2029 case WM_CTLCOLORLISTBOX: 2055 case WM_CTLCOLORLISTBOX: