我是这么弄的
case WM_INITDIALOG:
SetTimer(hDlg,1,1000,NULL);
SendMessage(GetDlgItem(hDlg,SPIN1),UDM_SETBUDDY,(long)GetDlgItem(hDlg,EDIT3),0L);
SendMessage(GetDlgItem(hDlg,SPIN1),UDM_SETRANGE,0L,100L);
SetDlgItemInt(hDlg,EDIT3,5,FALSE);
case WM_VSCROLL:
if((int)LOWORD(wParam)==SB_LINEDOWN)
MessageBox(hDlg,"xia","1",MB_OK);
break;
有if判断时,MessageBox不能执行
去掉if判断,MessageBox去执行了两次,郁闷,那不收到了两次消息,通过单步执行证实确实收到两次消息
大家帮我看看为什么会有这两个怪问题
case WM_INITDIALOG:
SetTimer(hDlg,1,1000,NULL);
SendMessage(GetDlgItem(hDlg,SPIN1),UDM_SETBUDDY,(long)GetDlgItem(hDlg,EDIT3),0L);
SendMessage(GetDlgItem(hDlg,SPIN1),UDM_SETRANGE,0L,100L);
SetDlgItemInt(hDlg,EDIT3,5,FALSE);
case WM_VSCROLL:
if((int)LOWORD(wParam)==SB_LINEDOWN)
MessageBox(hDlg,"xia","1",MB_OK);
break;
有if判断时,MessageBox不能执行
去掉if判断,MessageBox去执行了两次,郁闷,那不收到了两次消息,通过单步执行证实确实收到两次消息
大家帮我看看为什么会有这两个怪问题
在这里中断,看看两次LOWORD(wParam)是什么值,是否相同winuser.h中的定义:
#define SB_LINEUP 0
#define SB_LINELEFT 0
#define SB_LINEDOWN 1
#define SB_LINERIGHT 1
#define SB_PAGEUP 2
#define SB_PAGELEFT 2
#define SB_PAGEDOWN 3
#define SB_PAGERIGHT 3
#define SB_THUMBPOSITION 4
#define SB_THUMBTRACK 5
#define SB_TOP 6
#define SB_LEFT 6
#define SB_BOTTOM 7
#define SB_RIGHT 7
#define SB_ENDSCROLL 8