请教:vc6下“鼠标滑轮事件”的问题--GET_WHEEL_DELTA_WPARAM()函数无法识别
我要获取鼠标滑轮滑动的距离,于是按照msdn上说:zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
但是,编译不通过。提示:“'GET_WHEEL_DELTA_WPARAM' : undeclared identifier”
该怎么办?请高手指点!谢谢!
系统是win2000,环境是vc++6.0
程序所包含的头文件如下:
#include <stdlib.h>
#include <vector>
#define _WIN32_WINDOWS 0x0410//如果没有这行,程序就识别不了“WM_MOUSEWHEEL”这个鼠标事件的常量!
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <gl\glaux.h>
#include <GL\glut.h>
#include <math.h>
问题点数:20、回复次数:8Top
1 楼wawaku(一堆裤衩!)回复于 2006-03-08 15:31:07 得分 0
if(zDelta == 120)
{
//向上滚
}
if(zDelta == 120)
{
//向下滚
}
上下有点记不清了,你试试吧Top
2 楼wawaku(一堆裤衩!)回复于 2006-03-08 15:31:25 得分 0
下是 -120Top
3 楼yaoyansi()回复于 2006-03-08 15:50:39 得分 0
if(zDelta == 120)
{
//向上滚
}
if(zDelta == 120)
{
//向下滚
}
--------------------------------------------
可是,你是如何得到zDelta的值的呢?
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);//我这样写,编译器不认识这个函数Top
4 楼wawaku(一堆裤衩!)回复于 2006-03-08 16:19:32 得分 0
不必得倒呀,就是在WM_MOUSEWHEEL 的消息函数里写就个就OK。
然后你当然得加上你自己坐标转换的东西啊,这个是我一个程序里的,用鼠标中轮来控制了滚动条的坐标,
BOOL CXXXXView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
if(zDelta == 120)
{
if(m_vscroll.GetScrollPos()>=25)
{
m_vscroll.SetScrollPos(m_vscroll.GetScrollPos()-25,true);
vcurpos-=25;
}
Invalidate();
}
if(zDelta == -120)
{
if(m_vscroll.GetScrollPos()<=2999)
{
m_vscroll.SetScrollPos(m_vscroll.GetScrollPos()+25,true);
vcurpos+=25;
}
Invalidate();
}
Top
5 楼yaoyansi()回复于 2006-03-08 16:20:00 得分 0
目前,我是这样解决的:
在windows sdk下面的winuser.h文件里发现GET_WHEEL_DELTA_WPARAM的宏定义,如下:
#define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
那么,我在程序中把zDelta = GET_WHEEL_DELTA_WPARAM(wParam);语句还成了
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
编译运行通过!
不过,感觉总是怪怪的,仍然期待高人的指点。Top
6 楼yaoyansi()回复于 2006-03-08 16:23:31 得分 0
哦 我明白楼上诸位的意思了
可是,我处理滑轮不是为了改变滚动条的位置,是为了其他事情Top
7 楼wawaku(一堆裤衩!)回复于 2006-03-08 16:31:39 得分 0
大哥,你楼上就我一人
想做什么呢 弄不懂你的意思了Top
8 楼Mackz(在相互)回复于 2006-03-08 21:54:28 得分 20
#if(_WIN32_WINNT >= 0x0400)
/* Value for rolling one detent */
#define WHEEL_DELTA 120
#define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
Top




